关于正则表达式:正则表达式匹配非零,零填充整数

Regular expression to match a non-zero, zero-padded integer

我需要一个模式的帮助来匹配一个不全是零的填充整数。它可以有0到n个前导零。到目前为止,我有:

1
^[0-9]{0,}[1-9]{1}$"

但由于最后一个零,这并不能得到像000860这样的东西。我觉得这应该很简单,但我不明白。任何帮助都将不胜感激。

编辑:一些人问这是哪种引擎/语言。我以为瑞格是标准化的,所以没关系。但它是.NET。


为什么不使用:

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

?顺便说一句,您没有指定正在使用的regex引擎。但是上面的模式应该适用于几乎所有的regex引擎。


只需尝试以下regex:

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


这个正则表达式呢?^0*[1-9]\d*$


你想赶上860吗?

1
"000860".match(/^0*([1-9][0-9]*)$/)[1]


好吧,这是我的看法:

0+[1-9]+[0-9]{0,}

它捕获至少一个零(在第一个0之后追加?,而不是+,如果可能没有前导零),至少一个非零数字,然后是任何数量的零和其他数字。

如果你想捕捉不带零的数字:

0+([1-9]+[0-9]{0,})

只需将部分放在捕获组的前导零之后。

在这里玩

成功分析所有这些:

1
2
3
4
5
000860
000860123
000800
000810
0008