java正则表达式拆分文本;但引号内不匹配(包括引号内的转义引号)
我需要解析一个字符串;作为分隔符。但是如果文本在双引号内,则不需要解析它 示例我需要解析java正则表达式拆分文本;但引号内不匹配(包括引号内的转义引号),java,regex,Java,Regex,我需要解析一个字符串;作为分隔符。但是如果文本在双引号内,则不需要解析它 示例我需要解析 this ; "but not ; this" 为此,我提出了正则表达式模式,它工作得很好 ;(?=(?:(?:[^\"]*\"){2})*[^\"]*$) 现在,如果文本包含转义引号,则上述模式不起作用 我需要解析 this ; "but \" not ; this" 你能帮我解释一下在引号中省略转义引号的模式吗?只要双引号不是不平衡的,你就可以将这个正则表达式与负查找一起使用: (?s);(?=(
this ; "but not ; this"
为此,我提出了正则表达式模式,它工作得很好
;(?=(?:(?:[^\"]*\"){2})*[^\"]*$)
现在,如果文本包含转义引号,则上述模式不起作用
我需要解析
this ; "but \" not ; this"
你能帮我解释一下在引号中省略转义引号的模式吗?只要双引号不是不平衡的,你就可以将这个正则表达式与
负查找一起使用:
(?s);(?=(?:(?:.*?(?<!\\\\)\"){2})*[^\"]*$)
(?s);(?=(?:(?:.*?(?
工作演示:谢谢Anubhava。它工作正常。但是如果文本包含\n,解析逻辑将失败。我以前的正则表达式也可以与\n\t一起工作。在这种情况下,您还需要使用(?s)
。请参阅编辑。