2012-01-03 125 views

回答

1

遍歷您的輸入:

"([^\\"]*(?:\\.[^\\"]*)*)" 

並捕獲第一組。

該構造將處理嵌入的引號以及空字符串。如果您不想要空字符串,請將第一個*替換爲+

使用PHP,這是使用preg_match_all完成:

preg_match_all('/"([^"]*(?:\\"[^"]*)*)"/', "input here", $matches); 
# use the $matches array 
+0

我想將它作爲一個數組,我可以用foreach來修飾它。 – user998163 2012-01-03 21:52:51

+1

查看編輯,但你可以自己發現;)我花了30秒的谷歌搜索,我不知道PHP;) – fge 2012-01-03 21:56:53

0

如果你的字符串沒有嵌入引號,你可以簡單地使用"(.*?)"。如果他們這樣做,那麼這取決於你如何引用它們,但"(([^"\\]|\\.)*)"將處理反斜槓引用的字符串,如"\"\\"。 (注意:除了第二個正則表達式中的反斜槓外,這些字符串本身都沒有引用。)