2017-02-01 134 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

相關問題