检查数字是否大于 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());

解释:

你基本上有两个选择

  1. 数字可以以 2,3,...,9 开头 - 可以有任意位数 在它之后,任何类型的:[2-9][0-9]*
  2. 号码可以1开头,后面必须跟一些数字:1[0-9]+

将它们结合起来得到正则表达式。

您可以使用以下正则表达式来做到这一点:[2-9]|([1-9][0-9]+)

这意味着:2 到 9 之间的单个数字,或者:1 到 9 之间的数字后跟一个或多个数字。

正则表达式非常强大,有时人们试图将它们用于所有事情。这通常是您实际上不需要正则表达式的示例。仅检查 if (n > 1) 比使用正则表达式更简单、更清晰。

只有大于 1 的数字才允许。

"^(?:[1-9]\d+|[2-9])$"

DEMO

最后一位数字必须大于 1 或非 0 数字必须作为最后一位以外的数字出现。正则表达式是:

"[2-9]|[1-9][0-9]+"

这个看起来很简单:

^0*[1-9]\d*$

DEMO