如何在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