关于正则表达式括号()、或|、开始结束^$的组合使用问题
我想匹配一串数字,可以为0,但不允许0开头。
这是我的写法:^0|[1-9][0-9]*$
,但这会匹配01。
这是网上找的写法:^(0|[1-9][0-9]*)$
,请问为什么加了括号以后就匹配正确了。
我从网上找到的小括号的用处是:
限定量词作用的范围
限定多选结构的范围
为反向引用捕获文本
分组捕获
只分组不捕获
前瞻
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这是因为
|
在正则中的优先级最低,然后你的表达式其实是相当于(^0|[1-9][0-9]*$)
,这样是匹配0开头或是非0开头数字结尾的字符串,而不是你想要的匹配0或是非0开始的数字。