首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >匹配BIN范围的Regex

匹配BIN范围的Regex
EN

Stack Overflow用户
提问于 2017-06-06 15:45:32
回答 2查看 626关注 0票数 0

我正在尝试编写一个将数字456725456744 (最后2位数字,25-44)相匹配的正则表达式,但似乎无法找到正确的regex格式。我尝试过^(4567[2-4][0-9]),但使用它也与456745相匹配,这是不应该的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-06-06 16:07:33

如果您像^(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])

1 Alternative 2[5-9]

2与字符2匹配。

匹配列表[5-9]中的单个字符

2 Alternative 3[0-9]

3与字符3匹配。

匹配列表[0-9]中的单个字符

3 Alternative 4[0-4]

4与字符4匹配。

匹配列表[0-4]中的单个字符

您可以使用页面regex101来了解更多内容,并阅读关于该主题的良好解释。希望能帮上忙。

票数 1
EN

Stack Overflow用户

发布于 2017-06-06 16:07:41

如果您的变量只是一个整数,那么最好将其作为一个整数进行比较。

对于regex though..the ^(4567是正确的,您的问题是[2-4][0-9],它们是相互独立的。您需要将这些部分放在一起,以便只允许25-2940-44

这应该会让你走上正确的轨道:

代码语言:javascript
运行
复制
^(4567(?:2[5-9]|3[0-9]|4[0-4]))$
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44394464

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档