嗨,我在互联网上发现这个正则表达式接受正数 ^\d+$ 而这个不接受任何内容 ^$ 所以不,我想结合这两个正则表达式,但没有成功。我尝试了这个 (^\d+$)|(^$) 但这没有用。所以请帮助我使用正则表达式,它接受正整数而不接受任何内容 非常感谢
最佳答案
简单地做:
^\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_VALUE
的数字,它也会返回 true和Long.MAX_VALUE
。所以即使 matches(...)
返回 true,parseInt(...)
或parseLong(...)
可能会抛出异常!
关于java - 正则表达式接受正整数而不接受任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6595413/