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

hud*_*udi 2 java regex

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

Bar*_*ers 11

简单地说:

^\d*$
Run Code Online (Sandbox Code Playgroud)

*意思是:"零次或多次".

由于您已经使用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*"));
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

生产:

-100 -> false
 -> true
2334 -> true
0 -> true
Run Code Online (Sandbox Code Playgroud)

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

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