java - 将标识符与字符串、数字和 _ 进行匹配

标签 java regex jflex

[a-zA-Z]_*[a-zA-Z0-9]*  

我的目标是匹配:

astring_something;
helloall90

但不是:

Astring
_helloall

我的正则表达式正在保护我,标识符应以小写字母开头。但它不适用于 _ 情况。传递字符串:

astring_something;

没有被正确识别。它被识别为 astringsomething 遗漏了 _

我哪里出错了?

最佳答案

我想您希望它以一个字母开头,后跟零个或多个字母、数字或下划线。如果是这样,您需要将下划线移动到第二组字符中。

更改:

[a-zA-Z]_*[a-zA-Z0-9]*

致:

[a-zA-Z][a-zA-Z0-9_]*

或者,如果必须以小写字母开头:

[a-z][a-zA-Z0-9_]*

关于java - 将标识符与字符串、数字和 _ 进行匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12954521/

相关文章:

java - JFlex 正则表达式与词法规则中的关键字

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

java - 如何检查一个 ArrayList 是否包含另一个 ArrayList 的任何元素?

r - 如何用 NA 标记缺失的左手搭配

php - 在 htaccess 中重定向

php - 为什么我们需要逃脱! < > : = - in php regular expressions?

java - JDBC 优化多线程上的 MySql 请求

java - 小错误第10001个素数java代码?

java ajax方法在被多个源调用时变得困惑

java - JFlex 限制单行注释正则表达式