Java正则表达式:查找双引号并注意转义字符

Java正则表达式:查找双引号并注意转义字符,java,regex,Java,Regex,我在制作一个注意到引号内转义字符的正则表达式时遇到了麻烦 例如,“this line”中的两个“quoted string”将返回: 引用字符串 这条线 此字符串“包含\“转义引号”。将返回: 包含一个“转义引号” 我做了一个正则表达式来匹配引号 \\\"[^\\\"\\n]*\\\" \\“引用 [^\\“\n]*除了引号或新行以外的任何内容 \\“引用 如何生成忽略引号内转义字符的正则表达式 注意:我只希望引号中的转义字符被注意到,因此类似于“a dog”的东西仍然应该输出一只狗。试试

我在制作一个注意到引号内转义字符的正则表达式时遇到了麻烦

例如,“this line”中的两个“quoted string”将返回:

引用字符串

这条线

此字符串“包含\“转义引号”。将返回:

包含一个“转义引号”

我做了一个正则表达式来匹配引号

\\\"[^\\\"\\n]*\\\"
  • \\“引用
  • [^\\“\n]*除了引号或新行以外的任何内容
  • \\“引用
如何生成忽略引号内转义字符的正则表达式

注意:我只希望引号中的转义字符被注意到,因此类似于“a dog”的东西仍然应该输出一只狗。

试试这个

Pattern p = Pattern.compile("\"(?:\\\\\"|[^\"])*\"");
Matcher m = p.matcher("\"contains an \\\" escaped quote mark\"");
while (m.find()) {
    System.out.println(m.group());
}
试试这个

Pattern p = Pattern.compile("\"(?:\\\\\"|[^\"])*\"");
Matcher m = p.matcher("\"contains an \\\" escaped quote mark\"");
while (m.find()) {
    System.out.println(m.group());
}