有人可以帮我生成一个正则表达式以检查输入的数字是否大于1。这是我尝试的:'[1-9] [0-9] | [2-9]',但这不允许我输入的位数超过2位。我对此很陌生。请帮助我。
您可以使用以下正则表达式来做到这一点:[2-9]|([1-9][0-9]+)
这意味着:2到9之间的一个数字,或者:1到9之间的一个数字,然后是一个或多个数字。
正则表达式非常强大,有时人们会尝试将它们用于所有内容。这通常是您实际上不需要正则表达式的示例。与使用正则表达式相比,仅检查if (n > 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]+
将它们组合在一起即可获得正则表达式。
或者最后一位必须大于1
,或者必须将非0
位作为最后一位以外的数字出现。正则表达式为:
"[2-9]|[1-9][0-9]+"