代码之家  ›  专栏  ›  技术社区  ›  Arthur Frankel

要匹配-100到0的正则表达式

  •  2
  • Arthur Frankel  · 技术社区  · 14 年前

    我需要一个正则表达式来匹配所有介于-100和0之间的数字。

    因此,有效值为:

    • -100

    无效的是:

    • 1.
    • 100
    • 40

    非常感谢。

    5 回复  |  直到 13 年前
        1
  •  8
  •   Somnath Muluk    13 年前

    使用此功能:

    /^(?:0|-100|-[1-9]\d?)$/
    
        2
  •  2
  •   Tim Pietzcker    14 年前

    (?:         # Either match:
     -          # a minus sign, followed by
     (?:        # either...    
      100       # 100
      |         # or
      [1-9]\d?  # a number between 1 and 99
     )
     |          # or...
     (?<!-)     # (unless preceded by a minus sign)
     \b0        # the number 0 on its own
    )
    \b          # and make sure that the number ends here.
    (?!\.)      # except in a decimal dot.
    

    这将在普通文本中查找负整数(-100到-1)和0。不允许前导零。

    如果您已经隔离了该号码,则

    ^(?:-(?:100|[1-9]\d?)|0)$
    

    -0 .

    ,然后使用

    ^-?0*(?:100|\d\d?)$
    

    …如果你的老板告诉你“哦,顺便说一句,从明天起,我们需要允许不同的价值观 -184.78 33.53 "?

        3
  •  0
  •   Christopher Hunt    14 年前

    (-?\p{Digit}{1,3})
    

    然后测试捕获的值以确保它在您的范围内?

        4
  •  0
  •   Saurabh Kumar    14 年前

    试一试([1-9][0-9]?|-100|0)$

    但也许可以简化为将其转换为数字,然后快速检查范围

        5
  •  0
  •   Randy the Dev    14 年前

    (-100|((-[1-9]?[0-9])|\b0))