Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在尝试使用 JFlex 生成扫描仪。
我试图实现的语法的标识符规则之一如下(在正则表达式语法中):
[a-zA-Z]((_(?!_)|[a-zA-Z0-9])*[a-zA-Z0-9])?
我已经验证了上面的表达式实际上是有效的并且有效。然而,jFlex 1.4.3 似乎不喜欢我使用前瞻断言(?!_),因为它一直在抱怨“问号”。是我做错了什么还是在 JFlex 中使用前瞻有什么不同?
(?!_)
我正在使用“前瞻”来满足标识符名称中不能有两个连续下划线的规则。
任何帮助,将不胜感激。
代替
使用优化模式
[a-zA-Z]+(_[a-zA-Z0-9]+|[a-zA-Z0-9]+)*