java正则表达式拆分文本;但不匹配引号(包括其中的转义引号)

时间:2013-08-29 21:41:34

标签: java regex

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

示例我需要解析

this ; "but not ; this"

为此,我提出了正则表达式,它可以正常工作。

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

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

我需要解析

this ; "but \" not ; this"

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

1 个答案:

答案 0 :(得分:0)

只要双引号不平衡,您就可以将此正则表达式与negative look-behind一起使用:

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

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