我试图编写一个匹配数字456725
到456744
的正则表达式(最后2位数,25-44),但似乎无法找出正确的数字正则表达式格式。我已尝试^(4567[2-4][0-9])
,但使用此内容也与456745
匹配,但不应该这样做。
答案 0 :(得分:1)
如果您执行^(4567[2-4][0-9])
,则允许[2-4]
范围内的任何数字以及[0-9]
之间范围内的任何数字,这显然不是您想要的。
所以你需要改变:
^4567(?:2[5-9]|3[0-9]|4[0-4])
^
在字符串
4567
字面匹配字符4567
非捕获组 (?:2[5-9]|3[0-9]|4[0-4])
第一选择 2[5-9]
2
与字符2字面匹配
匹配列表[5-9]
第二选择 3[0-9]
3
与字符3字面匹配
匹配列表[0-9]
第三种选择 4[0-4]
4
与字符4字面匹配
匹配列表[0-4]
您可以使用页面regex101了解更多信息,并阅读有关该主题的详细说明。希望能帮助到你。
答案 1 :(得分:0)
如果你的变量只是一个整数,最好只是比较它......
对于正则表达式而言^(4567
是正确的,您的问题是[2-4]
和[0-9]
这些是彼此独立的。您需要将各个部分放在一起,因此只允许25-29
和40-44
。
这可以让你走上正轨:
^(4567(?:2[5-9]|3[0-9]|4[0-4]))$