2017-02-01 107 views
2

我正在寻找正则表达式来返回给定字符串中双引号之间的值。 我使用下面的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

检查此:[链接](http://stackoverflow.com/questions/171480/regex-grabbing-values-between-quotation-marks) – vin

+1

您可以提供输出给定的输入字符串usi你当前的代码? – Bastiaanus

+0

感谢您的快速支持。我尝试过,但不是运气。它不适用于我的文本。 – shrikant5

回答

0

你想后\这就像在perl

if($line =~ /(?:(?:[\\]?+.)|.)*?"((([\\]?+.)|.)*?)"/){ 
    print $1; 
} 

如果Java中,你将需要保护每个\和“

Pattern.compile("(?:(?:[\\\\]?+.)|.)*?\"((([\\\\]?+.)|.)*?)\""); 

如果Java“吃”的一个字符模式不工作尝试与JRegex

相关问题