【问题标题】:Regex match everything except three consecutive double quotes正则表达式匹配除三个连续双引号外的所有内容
【发布时间】:2018-10-03 18:15:23
【问题描述】:

我正在尝试匹配除

之外的所有内容
"""

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

[^\"]{3}

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

This example "" would match " all the way.

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

【问题讨论】:

  • 你的意思是^(?!.*""").*?任何不包含“单词”的字符串?什么是编程语言/正则表达式?最终目标是什么?
  • 这适用于 regextester.com,但会导致“行尾未终止的字符串”。 JFlex 中的错误。
  • 对不起。我刚刚意识到您评论了我的回答,说您正在使用 JFlex。我不知道你是问这个问题的人,才意识到这一点。由于没有人回答,我会尽量用你的工具来帮助你。
  • 实际上,它也不适用于 flex。我错了。现在我真的很想知道这个问题的解决方案。
  • 感谢@JudismarArpiniJunior 的尝试!我能够得到一个涉及三个正则表达式案例的不太优雅的解决方案。已发布答案。

标签: regex jflex


【解决方案1】:

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

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

一个带有两个双引号的字符串将被一次“吞噬”一个。带有三个双引号的字符串将选择 case 1,因为最大 munch 规则和 case 1 的优先级高于 case 3。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-20
    • 2011-05-30
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 2021-05-26
    • 2022-08-21
    相关资源
    最近更新 更多