RegEx匹配带或不带千位分隔符的数值

时间:2011-06-06 06:47:23

标签: regex

我需要一个RegEx来匹配以下内容:

1.234.567
-1.234.789
1234567
-1234567

不应该匹配:

.123     (leading separator)
123..456 (two separators)

换句话说,我需要一个RegEx来匹配使用或不使用千位分隔符格式化的long数值。

谢谢!

2 个答案:

答案 0 :(得分:9)

这是一个更受限制的答案

^-?(?!0)(?:\d+|\d{1,3}(?:\.\d{3})+)$

在线查看here at Regexr

(?!0)阻止以0

开头

\d+允许不带分隔符的数字

\d{1,3}(?:.\d{3})+是分隔符的一部分。从1到3个数字开始,然后是分隔符和3个数字。可以重复分隔符后跟3个数字的点。

答案 1 :(得分:2)

您可以执行类似

的操作
^-?([0-9]{1,3}\.?)+$

RegExr Demo