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

时间:2015-08-01 07:24:53

标签: java regex validation numbers

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

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

2 个答案:

答案 0 :(得分:1)

如果是学校作业,那么你不应该在这里问。如果您正在为真正的程序执行此操作,那么如果您允许非整数值,则将其解析为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子句。

答案 1 :(得分:0)

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

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