regex接受正整数而没有任何东西

时间:2011-07-06 11:08:39

标签: java regex

嗨我在互联网上发现这个正则表达式接受正数^ \ d + $并且这不接受^ $ 所以,不,我想结合这两个正则表达式,但没有成功。我试试这个(^ \ d + $)|(^ $)但这没有用。所以帮助我使用regexp接受正整数而不是任何东西 很多

3 个答案:

答案 0 :(得分:11)

简单地说:

^\d*$

*表示:“零次或多次”。

由于您已经使用Java标记询问了大多数问题,我假设您正在寻找Java解决方案。请注意,在字符串文字中,\需要转义!

演示:

class Test {
  public static void main(String[] args) {
    String[] tests = {"-100", "", "2334", "0"};
    for(String t : tests) {
      System.out.println(t + " -> " + t.matches("\\d*"));
    }
  }
}

产生

-100 -> false
 -> true
2334 -> true
0 -> true

请注意,matches(...)已经验证了整个输入字符串,因此无需使用^$“锚定”它。

请注意,对于超过Integer.MAX_VALUELong.MAX_VALUE的数字,它也会返回true。即使matches(...)返回true,parseInt(...)parseLong(...)也可能会引发异常!

答案 1 :(得分:2)

试试^[0-9]*$。这个允许数字,没有。

答案 2 :(得分:1)

^\d*$怎么样?这将在没有空格或空行的行中接受一系列数字(即正整数)。