正则表达式匹配-100到0

时间:2010-09-22 22:09:41

标签: regex

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

所以有效值是:

  • 0
  • -100
  • -40

无效的是:

  • 1
  • 100
  • 40

谢谢!

5 个答案:

答案 0 :(得分:8)

使用此功能:

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

答案 1 :(得分:2)

好的,所以我迟到了,但这里有:

(?:         # 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,请使用

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

...如果你的老板告诉你“哦,顺便说一下,从明天开始,我们需要允许-184.7833.53之间的值”,你会怎么做?

答案 2 :(得分:0)

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

但也许简单地将它转换为数字并快速检查范围

答案 3 :(得分:0)

如何使用捕获组然后以编程方式测试该值,例如

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

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

答案 4 :(得分:0)

我是正规表达的新手吗? (-100|((-[1-9]?[0-9])|\b0))