【问题标题】:jflex regular expression any number except zerojflex正则表达式除零以外的任何数字
【发布时间】:2020-03-05 09:36:38
【问题描述】:

我是 JFlex 的新手,遇到了正则表达式的问题。

我正在尝试写入.flex 文件正则表达式,它将识别除零以外的任何数字。

问题是,当我在 .bnf 文件中尝试我的正则表达式时,live-preview 中一切正常,但是当我尝试使用 .flex 生成的类时 - 没有任何效果。

这是我在.bnf 文件中运行良好的正则表达式:

{
      tokens = [
         NUMBER = 'regexp:^[1-9]\d*'
      ]
}

但在 .flex 文件中,此正则表达式不起作用:

NUMBER = ^[1-9]\d*  // Compile error here. <expression> expected, got '^'
NUMBER = [^[1-9]\d*]  // Compiles, but not working.
NUMBER = \^[1-9]\d*\  // Compiles, but not working.

我做错了什么?

【问题讨论】:

    标签: regex bnf jflex


    【解决方案1】:

    你可以使用

    NUMBER = [1-9][0-9]*
    

    这将匹配从 19 的数字,然后是任意零个或多个数字。

    这里似乎不支持字符串锚的^开头。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多