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

问题描述 投票:-1回答:5

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

java validation dojo
5个回答
1
投票

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

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

正则表达式非常强大,有时人们会尝试将它们用于所有内容。这通常是您实际上不需要正则表达式的示例。与使用正则表达式相比,仅检查if (n > 1)更为简单和清楚。


1
投票

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

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

DEMO


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]+

将它们组合在一起即可获得正则表达式。


0
投票

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

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

0
投票

这看起来很简单:

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

DEMO

© www.soinside.com 2019 - 2024. All rights reserved.