0

我需要解析一个字符串;作为分隔符。但是如果它在双引号内,则不需要解析文本。

我需要解析的示例

this ; "but not ; this"

为此,我想出了可以正常工作的正则表达式模式。

;(?=(?:(?:[^\"]*\"){2})*[^\"]*$)

现在,如果文本包含转义引号,则上述模式不起作用。

我需要解析

this ; "but \" not ; this"

你能帮我解决在引号中省略转义引号的模式吗?

4

1 回答 1

0

只要双引号不是不平衡的,您就可以将此正则表达式与negative look-behind

(?s);(?=(?:(?:.*?(?<!\\\\)\"){2})*[^\"]*$)

工作演示:http: //ideone.com/KmjJXJ

于 2013-08-29T21:55:19.433 回答