我需要解析一个字符串;作为分隔符。但是如果它在双引号内,则不需要解析文本。
我需要解析的示例
this ; "but not ; this"
为此,我想出了可以正常工作的正则表达式模式。
;(?=(?:(?:[^\"]*\"){2})*[^\"]*$)
现在,如果文本包含转义引号,则上述模式不起作用。
我需要解析
this ; "but \" not ; this"
你能帮我解决在引号中省略转义引号的模式吗?
只要双引号不是不平衡的,您就可以将此正则表达式与negative look-behind
:
(?s);(?=(?:(?:.*?(?<!\\\\)\"){2})*[^\"]*$)