正则表达式括号()或|,^ $组合使用

时间:2017-10-21 03:00:54

标签: javascript php regex

我想匹配一串数字,可以是0,但我不允许0开始。

这是我的措辞:^0|[1-9][0-9]*$。但它会匹配01。

这是搜索的结果:^(0|[1-9][0-9]*)$。为什么我们必须在匹配正确后匹配括号。

1 个答案:

答案 0 :(得分:3)

  

这是我的措辞:^0|[1-9][0-9]*$但它会匹配01。

那是因为你说,匹配以0,匹配的东西,以[1-9][0-9]*

结尾的东西

说对了:

^0$|^[1-9][0-9]*$

或者,对备选方案进行分组 - 然后^和$仍将锚定在开头结尾处找到的内容:

^(0|[1-9][0-9]*)$