正则表达式以检查数字是否大于1

时间:2015-05-27 10:22:17

标签: java validation dojo

有人可以帮我生成一个正则表达式来检查输入的数字是否大于1.这就是我试过的:'[1-9] [0-9] | [2-9]'但是这不是允许我输入超过2位数。我很新。请帮助我..

5 个答案:

答案 0 :(得分: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());

说明:

你基本上有两个选择

  1. 该号码可以从2,3,...,9开始,并且具有任意数量的数字 在它之后,任何形式:[2-9][0-9]*
  2. 数字可以从1开始,并且必须有以下数字:1[0-9]+
  3. 组合它们可以获得正则表达式。

答案 1 :(得分:1)

您可以使用以下正则表达式执行此操作:[2-9]|([1-9][0-9]+)

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

正则表达式非常强大,有时人们会尝试将它们用于所有内容。这通常是您不需要正则表达式的示例。只需检查if (n > 1)比使用正则表达式执行此任务更简单,更清晰。

答案 2 :(得分:1)

仅当数字大于1时才允许该数字。

buffer

DEMO

答案 3 :(得分:0)

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

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

答案 4 :(得分:0)

这看起来很简单:

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

DEMO