【问题标题】:How to get text between special tags using jflex如何使用 jflex 获取特殊标签之间的文本
【发布时间】:2016-08-04 20:29:16
【问题描述】:

我有一个特殊的标签为“{code}”。我需要使用 jflex 在其中两个标签之间获取一些文本。

我正在尝试使用以下正则表达式

CODE_BLOCK= "{code}"(.*?)"{code}"

问题是它总是只返回第一个和最后一个标签之间的文本。看起来? 根本不起作用。我需要有能力只得到 ​​p>

{code}abs{code}

来自

{code}abs{code}{code}{code}

【问题讨论】:

    标签: java regex intellij-idea intellij-plugin jflex


    【解决方案1】:

    这里有几个不同的选项:

    如果大括号 ({) 字符未出现在您的文本中,您可以使用 {code}([^{]+){code} 作为您的正则表达式。

    如果是这样,并且它被转义了,您可以执行{code}((?:[^{]|\\{)+){code} 之类的操作。将\\ 替换为适当的转义字符(在这种情况下,我使用了通常的文字反斜杠字符约定)。

    如果它出现在标签之间并且没有被转义,您可能需要考虑编写一个适当的解析器,因为正则表达式并不是真正适合这种事情的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多