为什么我的正则表达式与我需要的电话号码不匹配?

2024-05-16 06:14:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我的书“使用Python自动化无聊的东西”有一个复杂的regex,它试图在给定的字符串中获取电话号码:

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

222-666-7777 ext 322是我认为应该与regex匹配的电话号码,但它没有。我使用的是regex101,下面是指向我的regex的链接:https://regex101.com/r/OIMqNB/1。有人能告诉我我哪里出错了吗?在


Tags: 字符串httpscom链接电话号码extregex指向
2条回答

我已经帮你修好了,你刚刚把?放错了。 这是新的正则表达式:https://regex101.com/r/OIMqNB/2

正则表达式是正确的,您只添加了一个新行,将正则表达式分成两个部分:

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

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

^{pr2}$

这是一个常见的错误,当使用视觉助手,只要仔细检查你的正则表达式是在同一行,每次你看到一些奇怪的行为

相关问题 更多 >