[a-zA-Z]_*[a-zA-Z0-9]*
我的目标是匹配:
astring_something;
helloall90
但不是:
Astring
_helloall
我的正则表达式正在保护我,标识符应该以小写字母开头。但它不适用于_
个案例。传递字符串:
astring_something;
未正确识别。已将其标识为astring
和something
,而忽略_
。
我犯了错误?
答案 0 :(得分:2)
我想你希望它以一个字母开头,后跟零个或多个字母,数字或下划线。如果是这样,您需要将下划线移动到第二组字符中。
变化:
[a-zA-Z]_*[a-zA-Z0-9]*
要:
[a-zA-Z][a-zA-Z0-9_]*
或者,如果它必须以小写字母开头:
[a-z][a-zA-Z0-9_]*
答案 1 :(得分:1)
您目前只在下划线前匹配单个字符。
[a-zA-Z]*_[a-zA-Z0-9]*
这是否是你真正想要的是一个不同的问题;例如,有多个下划线的东西呢?
答案 2 :(得分:0)
尝试
^[a-z]+_*[a-zA-Z0-9]+
哪里......
^[a-z]+
表示必须以一个或多个小写字母开头,然后是......
_*
零个或多个_字符,后跟......
[a-zA-Z0-9]*
零个或多个字母数字字符。
此模式将匹配astring_something和helloall90但不匹配_helloall和Astring