Regex 通用数字格式的正则表达式

Regex 通用数字格式的正则表达式,regex,Regex,什么是可以匹配一般可以理解的数字的正则表达式?(越简单越好) 例如,它应该匹配: 10 10.0 10.00 3.3333 123456 100,000 1,234,567 33,456.22 -2.2 .2 -.2 +.2 0.2 .20 不应匹配: 33,33.1 1.2.3 100,000,000000 大多数情况下都会发生 说明: ^ # start of string [+-]? # optional si

什么是可以匹配一般可以理解的数字的正则表达式?(越简单越好)

例如,它应该匹配:

10
10.0
10.00
3.3333
123456
100,000
1,234,567
33,456.22
-2.2
.2
-.2
+.2
0.2
.20
不应匹配:

33,33.1
1.2.3
100,000,000000
大多数情况下都会发生

说明:

^                      # start of string
[+-]?                  # optional sign
(?:                    # match either...

 \d+                   # only digits
 |                     # or

 \d{1,3}(?:,\d{3})+    # only comma-separated digits
 |                     # or

 (?:                   # either...
  \d*                  # only digits (optional)
  |                    # or
  \d{1,3}(?:,\d{3})+   # comma-separated digits
 )                     # followed by...
 \.\d+                 # a dot and digits.

)                      # end of alternation
$                      # end of string.

对于英语风格的DD,DDD.DD:

^[+-]?(([1-9]\d{0,2})(([,]\d{3})*|\d*)([.]\d+)?|0?([.]\d+)|0)$
对于
DD,DDD.DD
DD.DDD,DD

^[+-]?(([1-9]\d{0,2})(([,]\d{3})*|\d*)([.]\d+)?|0?([.]\d+)|([1-9]\d{0,2})(([.]\d{3})*|\d*)([,]\d+)?|0?([,]\d+)|0)$


希望我没有错过任何东西。如果你找到了不起作用的例子,请说。

它没有抓住/^[+-](?:\d+\d*.\d+\d{1,2}(?:,\d{3})+.\d*.$/。test('10000000000')它匹配
100,000000
0,0,0
00
不,它不匹配。你凭什么认为它有用?我可能用旧的测试过。我的错。我能找到的唯一问题是它也匹配
100000000
。10.000.000,00怎么样?许多地区都是这样做的。我会选择解析器(如YACC),而不仅仅是regex.1,1和1,11在其他地区是有效的。例如,我的
10000000000
不再在长版本中验证。
^[+-]?(([1-9]\d{0,2})(([,]\d{3})*|\d*)([.]\d+)?|0?([.]\d+)|([1-9]\d{0,2})(([.]\d{3})*|\d*)([,]\d+)?|0?([,]\d+)|0)$