我想要一个只接受数字和点的java正则表达式.
例如,
1.1.1 ----valid
1.1 ----valid
1.1.1.1---valid
1. ----not valid
Run Code Online (Sandbox Code Playgroud)
点不应位于起始位置或结束位置.
Vil*_*Búr 24
我想这就是你想要的:
^\d+(\.\d+)*$
Run Code Online (Sandbox Code Playgroud)
说明:它接受以点分隔的数字; 它以数字开头和结尾; 一个数字可以有多个数字; 也可以接受一个没有圆点的数字.
没有多个数字的变体:
^\d(\.\d)*$
Run Code Online (Sandbox Code Playgroud)
需要至少一个点的变体:
^\d+(\.\d+)+$
^\d(\.\d)+$
Run Code Online (Sandbox Code Playgroud)
不要忘记在Java中你必须转义\符号,所以代码将如下所示:
Pattern NUMBERS_WITH_DOTS = Pattern.compile("^\\d+(\\.\\d+)*$");
Run Code Online (Sandbox Code Playgroud)
那么您想要一个需要数字和句点但以数字开头和结尾的正则表达式吗?
"[0-9][0-9.]*[0-9]"
Run Code Online (Sandbox Code Playgroud)
但这与诸如 之类的东西不匹配1。它没有任何句点,但以数字开头和结尾。