2011-04-05 286 views
0

我需要做以下類型的正則表達式匹配正則表達式:引號中引號

例如,如果我有一個字符串 - some "This is "sample" data" example

我想提取「這是‘樣本’數據」出上面的字符串。可否給我一個正則表達式,可以回到我想要的結果

更多詳細信息

我有一個字符串 - keyword = "This is "blood" sample" AND name = "some text"。 我需要提取 關鍵字=「這是」血液「樣本」 name =「一些文本」 作爲兩個單獨的字符串。

可否請你建議爲這種事情

我以前(keywords|name|title) = (.*?(\\\".*\\\").*?)作爲正則表達式正則表達式,如預期這是行不通的。它將整個字符串返回給我。

在此先感謝。

+1

1)您使用哪種工具進行提取?處理引號等事情的細節可能因工具而異。 2)你想要準確地匹配該字符串,或者是否包含其他引用數據的任何引用數據?即,你想匹配「a」b「c」嗎? – 2011-04-05 11:27:52

+0

那麼你對此感興趣的團隊是由一對雙引號括起來的嗎?並且可以在這個組裏面加雙引號? – 2011-04-05 11:28:08

+1

你能提供更多的例子嗎?正確的和不正確的匹配。 – aioobe 2011-04-05 11:31:42

回答

2

不太清楚你在做什麼,所以我會通過猜測填補空白。

Pattern p = Pattern.compile(".*?(\\\".*\\\").*?"); 
Matcher m = p.matcher("some \"This is \"sample\" data\" example"); 

if (m.matches()) 
    System.out.println(m.group(1)); 

輸出:

"This is "sample" data" 

一些言論:

  • 我應該在a b "c d "e f "g h" i j" k l" m n相匹配?
  • a "b" c"應匹配什麼?
  • 如果您想將""作爲開括號和右括號,則正則表達式不適合您。
+0

爲什麼我們需要3個反斜槓?我正在研究類似的問題,我認爲2是我們需要的 – 2013-10-24 05:15:09

+0

第三個反斜槓是爲了避免讓終結字符串文字。 – aioobe 2013-10-24 07:25:39