我正在尝试为正好五位数创建正则表达式,该数字应该在90000 - 96163之间。 我为5个数字创建了一个正则表达式 @ “^ \ d {5} $” 现在我如何确保它介于90000 - 96163之间? 任何小于90001和超过96162的东西都不应该起作用。
由于
答案 0 :(得分:2)
使用您的语言使用常规数字比较(使用<
和>
运算符)最容易实现这一点。
您可以使用正则表达式进行范围检查,但实现起来很繁琐,而且可读性很好。为了完整起见,这是一种可能的模式:
9([0-5][0-9]{3}|6(0[0-9]{2}|1([0-5][0-9]|6[0-3])))
分解后,模式如下:
9 # The first digit must be a 9
(
[0-5][0-9]{3} # Covering the range 90000-95999
|
6 # Matching 96xxx
(
0[0-9]{2} # Covering the range 96000-96099
|
1 # Matching 961xx
(
[0-5][0-9] # Covering the range 96100-96159
|
6[0-3] # Covering the range 96160-96163
)
)
)
如果可以避免,请不要这样做。只要考虑范围边界变化时会发生什么:想象一下,你必须检查一个值是否在7243和132843之间 - 不好玩。
答案 1 :(得分:0)
逐位数字:
/(?!^90000$)(^9([0-5]\d{3}|6(0\d{2}|1([0-5]\d|6[0-2]))))$/
答案 2 :(得分:0)
(9[0-5][0-9]{3}|960[0-9]{2}|961[0-5][0-9]|9616[0-3])
http://gamon.webfactional.com/regexnumericrangegenerator/
这足以找到一个正则表达式来查找范围。无需询问范围问题