检查数字是否大于 1 的正则表达式
Regular expression to check if number is greater than 1
谁能帮我生成一个正则表达式来检查输入的数字是否大于 1。这是我试过的:'[1-9][0-9]|[2-9]' 但是这个不允许我输入超过 2 位数字。我是新手 this.Please 帮帮我..
你可以选择:
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,3,...,9 开头 - 可以有任意位数
在它之后,任何类型的:
[2-9][0-9]*
- 号码可以1开头,后面必须跟一些数字:
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*$
谁能帮我生成一个正则表达式来检查输入的数字是否大于 1。这是我试过的:'[1-9][0-9]|[2-9]' 但是这个不允许我输入超过 2 位数字。我是新手 this.Please 帮帮我..
你可以选择:
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,3,...,9 开头 - 可以有任意位数
在它之后,任何类型的:
[2-9][0-9]*
- 号码可以1开头,后面必须跟一些数字:
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*$