Java 验证大于 20000 的数字的正则表达式

Java regular expression for validating a number greater than 20000

我有一个要求,我想验证一个应该大于 20000 且小于 100000 的数字。请帮助提供正则表达式。我对正则表达式很陌生。我有一个正则表达式来检查一个数字是否小于 20000

[1-9]\d{0,3}|1\d{4}|20000

如果这是学校作业,那么你不应该在这里提问。如果你正在为一个真正的程序做这个,最好将它解析为 int (或者如果你允许非整数值,则可能是 double ),然后检查它是否在你想要的范围:

try {
    int x = Integer.parseInt(in)
    if (x <= 20000 || x >= 100000) {
        //do what you want here for when it's not valid
    } else {
        //do what you want for a valid input here
    }
} catch (NumberFormatException e) {
    //Do something in case it's not a valid number here
}

现在,假设您有 String 类型的输入。如果它已经是数字类型,那么你不需要解析它 - 只需执行 if-else 子句。

^(?!20000)[2-9][0-9]{4}$

您需要的所有号码都是 5 位数。第一个数字可以是 2-9,其他数字可以是任何数字,只是您的列表中不能有 20000 在此范围内。让我们排除 1 个具有负前瞻性的数字 (?!20000),假设第一个数字只能是 2-9,应该跟在 4 个数字之后,但这些数字可以是任何数字。 https://regex101.com/r/wY6lA9/1