J. *_*Doe 2 java regex string pattern-matching
我读了很多正则表达式的问题,但我还没有找到这个...
我想在Java中使用正则表达式来检查字符串(长度没有限制)是否为数字:
包括负数(-4/-123)
包含 0
包括正面(2/123)
不包括+(+ 4/+ 123)
排除前零0(05/000)
不包括.(0.5/.4/1.0)
排除 -0
这是我到目前为止所做的:
^(?-)[1-9]+[0-9]*
Run Code Online (Sandbox Code Playgroud)
这是一个可选的 -
-?
Run Code Online (Sandbox Code Playgroud)
该数字不得以0开头
[1-9]
Run Code Online (Sandbox Code Playgroud)
它可以跟随一个任意数字的数字
\d*
Run Code Online (Sandbox Code Playgroud)
0是"不以0规则开始"的例外,因此您可以添加0作为替代.
最终的正则表达式
-?[1-9]\d*|0
Run Code Online (Sandbox Code Playgroud)
java代码
String input = ...
boolean number = input.matches("-?[1-9]\\d*|0");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4516 次 |
| 最近记录: |