我正在寻找正则表达式来返回给定字符串中双引号之间的值。 我在java代码下面使用
Pattern p = Pattern.compile("\"([^\"]*)\"");
Matcher m = p.matcher(line);
int findline = 0;
while (m.find()) {
System.out.println(m.group(0));
}
上述代码适用于普通文本,但不适用于下面的字符串
String originalString ="value = value.replaceAll(", ", ",").replaceAll(",", "\",\"").replaceAll("\\[","\""); ";
在javafile上它就像
String originalString = "value = value.replaceAll(\", \", \",\").replaceAll(\",\", \"\\\",\\\"\").replaceAll(\"\\\\[\",\"\\\"\"); ";
现在我要找的是双引号之间的数据是否包含
\ or \" or \\
然后忽略它应该返回的所有内容。
在双引号包含转义字符之间休息所有值,所以忽略该内容。
答案 0 :(得分:0)
你想吃''在\ perl
之后,它就像是这样的一个字符if( $line =~ /(?:(?:[\\]?+.)|.)*?"((([\\]?+.)|.)*?)"/ ){
print $1;
}
如果java你将需要保护每个\和"
Pattern.compile("(?:(?:[\\\\]?+.)|.)*?\"((([\\\\]?+.)|.)*?)\"");
如果java模式没有尝试使用JRegex。