如何匹配未定义的内容



如果我定义了类似的东西

COMMAND         = "HI" | "HOW" | "ARE" | "YOU" 

我怎么能说"如果您匹配不是命令的东西"?..

我试过这个

[^COMMAND]

但没有用..

据我所知,这在(当前(JFlex中是不可能的。

我们需要一个有效的缓和消极展望:((?!bad).)*

在JFlex 中,有两种方法可以进行负面展望:

  • 前瞻中的否定:x / !(y [^]*)(如果前瞻中未跟 y,则匹配 x(。
  • 使用否定元素向前看:x / [^y]|y[^z](如果 x 后跟 !a 或 a!b 的内容,则匹配。

否则,您可能会从这个答案中获得一些想法(特别是环顾四周的替代方案(:https://stackoverflow.com/a/37988661/8291949

好吧,你可以匹配其他任何东西,然后

COMMAND         = "HI" | "HOW" | "ARE" | "YOU" 
. {throw new RuntimeException("Illegal character: <" + yytext() + ">");}

相关内容

  • 没有找到相关文章

最新更新