Java - 普通正负数

时间:2016-12-13 18:39:29

标签: 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]*

1 个答案:

答案 0 :(得分:7)

是可选的 -

-?

该号码不得以0

开头
[1-9]

可能后跟一个任意数字的数字

\d*

0是"不以0规则"开头的例外,因此您可以添加0作为替代。

最终正则表达式

-?[1-9]\d*|0

java代码

String input = ...

boolean number = input.matches("-?[1-9]\\d*|0");