2012-01-03 122 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

如果你的字符串没有嵌入引号,你可以简单地使用"(.*?)"。如果他们这样做,那么这取决于你如何引用它们,但"(([^"\\]|\\.)*)"将处理反斜杠引用的字符串,如"\"\\"。 (注意:除了第二个正则表达式中的反斜杠外,这些字符串本身都没有引用。)