gpt4 book ai didi

java - 前瞻断言(正则表达式)在 JFlex 中不起作用

转载 作者:行者123 更新时间:2023-11-29 05:54:54 25 4
gpt4 key购买 nike

我正在尝试使用 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])? 

使用优化模式

[a-zA-Z]+(_[a-zA-Z0-9]+|[a-zA-Z0-9]+)* 

关于java - 前瞻断言(正则表达式)在 JFlex 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12574018/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com