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

时间:2014-09-02 20:16:48

标签: regex

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

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

但由于最后的零,这不会得到像000860这样的东西。我觉得这应该很简单,但我无法得到它。任何帮助将不胜感激。

编辑:有些人问过这是哪种引擎/语言。我认为正则表达式是标准化的,所以它并不重要。但它是.NET。

5 个答案:

答案 0 :(得分:5)

为什么不使用它:

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

? 顺便说一下,你错过了指定正在使用的正则表达式引擎。但上述模式几乎适用于任何正则表达式引擎。

答案 1 :(得分:4)

试试以下正则表达式:

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

答案 2 :(得分:3)

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

答案 3 :(得分:1)

你想赶上860吗?

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

答案 4 :(得分:0)

这是我的看法:

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

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

如果你想捕获没有零的数字:

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

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

play with it here

成功解析所有这些:

000860
000860123
000800
000810
0008