我需要Java中的一个正则表达式来检查双精度字符串的表示形式是否需要6个小数位。小数点前的值可以为正或负。
1.123456 - correct
-123123123.123456 - correct
123123123.123456 - correct
-123123123.123456 - correct
1.12345 - wrong
-.123456 - wrong
.123456 - wrong
.12345 - wrong
123456 - wrong
我试过了:
^\s*(?=.*[1-9])\d*(\.\d{6})?\s*$
但它并不能覆盖所有边缘。
最佳答案
尝试这个:
^\s*(-|\+)?(0|[1-9]\d*)\.\d{6}\s*$
请参见live demo。
仅当第一个数字是点之前的唯一数字时,它才允许将其为零,例如
0.123456
可以,但01.123456
则不能。 \.\d{6}
恰好需要6个小数位。关于java - 正则表达式纬度,要求保留小数点后6位,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51124450/