正则表达式匹配除三个连续双引号之外的所有内容

Regex match everything except three consecutive double quotes

我正在尝试匹配除

以外的所有内容
"""

在正则表达式中。我的尝试包括:

[^\"]{3}

这只包括双引号以外的所有内容。我还想包括一个双引号和两个双引号,这样,例如,整个字符串将匹配:

This example "" would match " all the way.

我正在尝试使用 JFlex 完成这项工作。

一个解决方案是使用多个正则表达式:

[\"][\"][\"]   -> case (1) for three consecutive double quotes.
[^\"]+         -> case (2) for anything except a double quote
[\"]           -> case (3) grab one double quote

带有两个双引号的字符串将 "gobbled" 一次一个。带有三个双引号的字符串将选择案例 1,因为最大咀嚼规则和案例 1 优先于案例 3。