什么是可以匹配一般可理解数字的正则表达式? (越简单越好)
例如,它应匹配:
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
答案 0 :(得分:1)
^[+-]?(?:\d+|\d{1,3}(?:,\d{3})+|(?:\d*|\d{1,3}(?:,\d{3})+)\.\d+)$
应该抓住大多数情况。
说明:
^ # 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.
答案 1 :(得分:1)
英文风格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)$
希望我没有错过任何东西。如果您找到不起作用的示例,请说明。