【问题标题】:Regular Expression for numericals数字的正则表达式
【发布时间】:2017-07-31 12:47:13
【问题描述】:

大家好,我是 Regex 的新手。我发现 0-99 有表达式 "(?:\b|-)([1-9]{1,2}[0]?|99)\b" 而 100-200 有 "[1-2] \d\d"。

我想知道如何编写一个范围 9990001 - 9999991。

任何使它起作用的答案将不胜感激。谢谢

【问题讨论】:

  • if (i >= 9990001 && i <= 9999991) { ... }
  • 不幸的是在我使用的工具中不起作用..我需要正则表达式格式
  • @ThomasMoors 没错。谢谢

标签: java regex regex-negation regex-group


【解决方案1】:

你可以使用

999[0-9]{2}([0-8][0-9]|91|90)

999 字面意思

[0-9]{2} 2 个数字

([0-8][0-9]|90|91) 0 到 8 任意数字或 91 或 90

Test it yourself

附言我同意@ikleschenkov 的观点,即您应该尽可能在该范围内使用 if 语句。正则表达式不是解决此类问题的最佳(甚至不是最快)工具。

【讨论】:

    【解决方案2】:

    您有 3 个选项,0X(X 大于 0)、1-8X 和 9X(X 最多 1):

    999[0-9][0-9][0][1-9]|999[0-9][0-9][1-8][0-9]|999[0-9][0-9][9][0-1]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-23
      • 2011-09-16
      • 1970-01-01
      • 1970-01-01
      • 2018-06-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多