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

时间:2018-10-03 18:15:23

标签: regex jflex

我正在尝试匹配除

以外的所有内容
"""
在正则表达式中

。我的尝试包括:

[^\"]{3}

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

This example "" would match " all the way.

我正在尝试使用JFlex进行这项工作。

1 个答案:

答案 0 :(得分:1)

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

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

带有两个双引号的字符串将一次被“咬住”。具有三个双引号的字符串将选择情况1,因为最大的修改规则和情况1在情况3之前的优先级。