我试图让我的代码忽略它正在阅读的一些行。因此,我的 SSCE 是:
public class testRegex {
private static final String DELETE_REGEX = "\\{\"delete"; //escape the '{', escape the ' " '
private static final String JSON_FILE_NAME = "example";
public static void main(String[] args){
String line = null;
try{
BufferedReader buff = new BufferedReader (new FileReader(JSON_FILE_NAME + ".json"));
line = buff.readLine buff.close();
}catch (FileNotFoundException e){e.printStackTrace();}
catch (IOException e){e.printStackTrace();}
String line=buff.readLine();
System.out.println(line.contains(DELETE_REGEX));
}
}
我的文件只包含以下行:
{"delete":{"status":{"user_id_str":"123456789","user_id":123456789,"id_str":"987654321","id":987654321}}}
但这打印出错误......我的正则表达式错了吗?我{
通过双重转义来匹配它,\\{
正如它在这里建议的那样。
字符串文字
"\(hello\)"
是非法的,会导致编译时错误;为了匹配字符串 (hello),"\\(hello\\)"
必须使用字符串文字。
我"
使用\"
.
那么我该如何修复我的程序呢?
*ps 我试过手动输入line = "\{\"delete"
(不需要双重转义,因为行是字符串而不是正则表达式),我得到了相同的结果。