首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我的regex不匹配我需要的电话号码?

为什么我的regex不匹配我需要的电话号码?
EN

Stack Overflow用户
提问于 2017-08-06 04:00:01
回答 2查看 179关注 0票数 3

我的书“用Python实现无聊的自动化”有一个复杂的正则表达式,它试图以给定的字符串获取电话号码:

((\d{3}|\(\d{3}\))?(\s|-|\.)?\d{3}(\s|-|\.)\d{4}(\s(ext|x|ext.)\s*\d{2,5})?)

222-66-7777分机322是我认为应该与regex匹配的电话号码,但它不匹配。我正在使用regex101,这是指向regex:https://regex101.com/r/OIMqNB/1的链接。有人能告诉我我哪里出了问题吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-08-06 04:08:53

这个regex是正确的,您刚刚添加了一个新行,它将正则表达式分成两个片段:

代码语言:javascript
复制
((\d{3}|\(\d{3}\))?(\s|-|\.)?\d{3}(\s|-|\.)\d{4}
(\s*(ext|x|ext.)\s*\d{2,5})?)

只需在{4}之后点击canc并将其放在regex101链接的同一行上,您就会看到它按预期工作。

代码语言:javascript
复制
((\d{3}|\(\d{3}\))?(\s|-|\.)?\d{3}(\s|-|\.)\d{4}(\s*(ext|x|ext.)\s*\d{2,5})?)

这是一个常见的错误,当你看到一些奇怪的行为时,只要重复检查你的正则表达式在同一条线上就可以了。

票数 3
EN

Stack Overflow用户

发布于 2017-08-06 04:17:32

我已经帮你修好了,你刚刚把一个?弄乱了。下面是新的regex:https://regex101.com/r/OIMqNB/2

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45528407

复制
相关文章

相似问题

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