【问题标题】:Java regular expression for validating a number greater than 20000用于验证大于 20000 的数字的 Java 正则表达式
【发布时间】:2015-08-01 07:24:53
【问题描述】:

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

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

【问题讨论】:

  • 为什么需要正则表达式? (value > min) && (value < max)
  • ^我和@hwnd 在一起,这种事情你不需要正则表达式
  • [2-9]{1}(?!0000)[0-9]{4}

标签: java regex validation numbers


【解决方案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 子句即可。

【讨论】:

    【解决方案2】:
    ^(?!20000)[2-9][0-9]{4}$
    

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

    【讨论】:

      猜你喜欢
      • 2013-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-12
      • 2011-04-17
      • 1970-01-01
      相关资源
      最近更新 更多