gpt4 book ai didi

java - 在 java 中使用正则表达式时转义 '{'?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:30:17 24 4
gpt4 key购买 nike

我试图让我的代码忽略它正在读取的某些行。因此,我的 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}}}

但这打印出错误...我的正则表达式错了吗?我通过使用 \\{ 双重转义来匹配 {,因为它建议 here

The string literal "\(hello\)" is illegal and leads to a compile-time error; in order to match the string (hello) the string literal "\\(hello\\)" must be used.

然后我使用 \" 转义了 "

那么我该如何修复我的程序呢?

*附注我试过手动输入 line = "\{\"delete"(不需要双重转义,因为 line 是一个字符串而不是正则表达式),我得到了相同的结果。

最佳答案

String.contains() 执行精确匹配,而不是正则表达式搜索。不要转义 { 大括号。

关于java - 在 java 中使用正则表达式时转义 '{'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12624187/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com