[英]Regex for latitude with required 6 decimal places
我需要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*$
观看现场演示 。
仅当它是点之前的唯一数字时,这才允许第一位为零,例如0.123456
是可以的,但不能为01.123456
。 \\.\\d{6}
恰好需要6个小数位。
有效输入应
^\\s*
-
或+
---> (-|\\+)?
\\d+
.
(\\d{6})
^\\s*
尝试这个:
^\s*(-|\+)?\d+\.(\d{6})\s*$
在正则表达式中,正向向前(?=.*[1-9])
断言,右侧的内容应包含一个对所有示例都将成功的数字。 断言之后,您匹配零个或多个数字\\d*
然后匹配一个可选地匹配点和6个数字的部分(\\.\\d{6})?
因此这将匹配.588888
或1
。
如果要匹配可选的减号,可以使用-?
对于示例数据,您可以使用:
在Java中:
String regex = "^-?\\d+\\.\\d{6}$";
说明
^
断言行首 -?
匹配可选的减号 \\d+\\.\\d{6}
匹配一个或多个数字,一个点和6个数字 $
行的结尾
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.