Java 检查数字是否大于1的正则表达式
有人能帮我生成一个正则表达式来检查输入的数字是否大于1吗。这就是我尝试的:“[1-9][0-9]|[2-9]”但这不允许我输入超过2位的数字。我对这个很陌生。请帮帮我。你可以选择以下方式:Java 检查数字是否大于1的正则表达式,java,validation,dojo,Java,Validation,Dojo,有人能帮我生成一个正则表达式来检查输入的数字是否大于1吗。这就是我尝试的:“[1-9][0-9]|[2-9]”但这不允许我输入超过2位的数字。我对这个很陌生。请帮帮我。你可以选择以下方式: regex = "([2-9][0-9]*|1[0-9]+)" 代码: String regex = "([2-9][0-9]*|1[0-9]+)"; Matcher m = Pattern.compile(regex).matcher(""); m.reset("1");
regex = "([2-9][0-9]*|1[0-9]+)"
代码:
String regex = "([2-9][0-9]*|1[0-9]+)";
Matcher m = Pattern.compile(regex).matcher("");
m.reset("1");
System.out.println(m.matches());
m.reset("2");
System.out.println(m.matches());
m.reset("10");
System.out.println(m.matches());
m.reset("24");
System.out.println(m.matches());
m.reset("10842");
System.out.println(m.matches());
说明:
你基本上有两个选择
[2-9][0-9]*
1[0-9]+
将它们组合在一起可以得到正则表达式。您可以使用以下正则表达式来实现:
[2-9]|([1-9][0-9]+)
这意味着:一个介于2和9之间的单个数字,或者:一个介于1和9之间的数字后跟一个或多个数字
正则表达式非常强大,有时人们试图将其用于一切。这通常是一个不需要正则表达式的示例。仅检查
if(n>1)
比使用正则表达式执行此任务更简单、更清晰。仅当数字大于1时才允许使用该数字
"^(?:[1-9]\\d+|[2-9])$"
最后一位数字必须大于
1
,或者非0
数字必须作为最后一位以外的数字出现。这方面的正则表达式是:
"[2-9]|[1-9][0-9]+"
这个看起来很简单:
^0*[1-9]\d*$
当然,可以用正则表达式进行验证-但为什么?[0-9][2-9]应该这样做,但我同意amit的观点,这不是使用正则表达式应该做的事情。它实际上是使用dojo验证字段,我需要这个正则表达式。这将允许
00
@AvinashRaj您是对的,修复了。它显示了为什么如果(n>1)
会更简单,更不容易出错…@nhahdh谢谢,在代码中输入了错误。(解释确实解释了这一点,但感谢您的反馈)。