正则表达式匹配BIN范围

时间:2017-06-06 15:45:32

标签: objective-c regex

我试图编写一个匹配数字456725456744的正则表达式(最后2位数,25-44),但似乎无法找出正确的数字正则表达式格式。我已尝试^(4567[2-4][0-9]),但使用此内容也与456745匹配,但不应该这样做。

2 个答案:

答案 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-2940-44

这可以让你走上正轨:

^(4567(?:2[5-9]|3[0-9]|4[0-4]))$