jflex 正则表达式除零以外的任何数字

jflex regular expression any number except zero

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

我正在尝试在 .flex 文件中编写可识别除零以外的任何数字的正则表达式。

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

这是我在 .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.

我做错了什么?

您可以使用

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

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

此处似乎不支持 ^ 字符串锚点的开头。