我想匹配一串数字,可以是0,但我不允许0开始。
这是我的措辞:^0|[1-9][0-9]*$
。但它会匹配01。
这是搜索的结果:^(0|[1-9][0-9]*)$
。为什么我们必须在匹配正确后匹配括号。
答案 0 :(得分:3)
这是我的措辞:
^0|[1-9][0-9]*$
但它会匹配01。
那是因为你说,匹配以0,或匹配的东西,以[1-9][0-9]*
说对了:
^0$|^[1-9][0-9]*$
或者,对备选方案进行分组 - 然后^和$仍将锚定在开头和结尾处找到的内容:
^(0|[1-9][0-9]*)$