如何在Java中使用正则表达式验证数字是否分离了千位(例如用点)?正则表达式的千位数
当然,它不必接受任何负数。我已经谷歌搜索到目前为止,我发现的最好的是[1-9]?\.[0-9]*
。但是,这并不完美。例如,它接受1.000000000
这是不正确的。
如何用千位分隔符验证正数?例如数字:1.024.553
或100.000
应该接受:
123
123.123
0
12.111
但不是:
00
kukac
0.111
1...1
1.1
如何在Java中使用正则表达式验证数字是否分离了千位(例如用点)?正则表达式的千位数
当然,它不必接受任何负数。我已经谷歌搜索到目前为止,我发现的最好的是[1-9]?\.[0-9]*
。但是,这并不完美。例如,它接受1.000000000
这是不正确的。
如何用千位分隔符验证正数?例如数字:1.024.553
或100.000
应该接受:
123
123.123
0
12.111
但不是:
00
kukac
0.111
1...1
1.1
您可以使用此模式:
^\d+|\d{1,3}(?:\.\d{3})*$
这将匹配任何没有数千分隔符的简单数字序列,或匹配每3位数字之间带有.
分隔符的任何序列。如果你也想支持逗号作为千位分隔符,使用此:
^\d+|\d{1,3}(?:[,.]\d{3})*$
当然,使用任何这些在Java中,你需要躲避\
字符:
String pattern = "^\\d+|\\d{1,3}(?:\\.\\d{3})*$";
更新鉴于你更新的规格,我建议这种模式:
^(?:0|[1-9][0-9]{0,2}(?:\.[0-9]{3})*)$
您可以在这里测试:Regex Tester
什么是测试用例? (输入与预期输出的列表) – acdcjunior
这是输入,我想检查它是否分开。 – Slenkra
投票拒绝这个问题的人可能expalin为什么? – Slenkra