为什么我的正则表达式与我需要的 phone 数字不匹配?
Why is my regex is not matching a phone number that I require?
我的书 "Automate the boring stuff with Python" 有这个复杂的正则表达式,它试图在给定字符串中获取 phone 数字:
((\d{3}|\(\d{3}\))?(\s|-|\.)?\d{3}(\s|-|\.)\d{4}(\s(ext|x|ext.)\s*\d{2,5})?)
222-666-7777 ext 322 是我认为应该与正则表达式匹配的 phone 号码,但事实并非如此。我使用的是 regex101,这里是我的正则表达式的 link:https://regex101.com/r/OIMqNB/1。有人可以告诉我哪里错了吗?
正则表达式是正确的,您刚刚添加了一个换行符,将正则表达式分成两部分:
((\d{3}|\(\d{3}\))?(\s|-|\.)?\d{3}(\s|-|\.)\d{4}
(\s*(ext|x|ext.)\s*\d{2,5})?)
只需在 {4} 之后点击 canc 并将其放在 regex101 link 的同一行中,您就会看到它按预期工作。
((\d{3}|\(\d{3}\))?(\s|-|\.)?\d{3}(\s|-|\.)\d{4}(\s*(ext|x|ext.)\s*\d{2,5})?)
这是使用视觉助手时的一个常见错误,每当您看到一些奇怪的行为时,只需仔细检查您的正则表达式是否在同一行上
我已经帮你解决了,你刚刚把 ?
搞砸了。
这是新的正则表达式:https://regex101.com/r/OIMqNB/2
我的书 "Automate the boring stuff with Python" 有这个复杂的正则表达式,它试图在给定字符串中获取 phone 数字:
((\d{3}|\(\d{3}\))?(\s|-|\.)?\d{3}(\s|-|\.)\d{4}(\s(ext|x|ext.)\s*\d{2,5})?)
222-666-7777 ext 322 是我认为应该与正则表达式匹配的 phone 号码,但事实并非如此。我使用的是 regex101,这里是我的正则表达式的 link:https://regex101.com/r/OIMqNB/1。有人可以告诉我哪里错了吗?
正则表达式是正确的,您刚刚添加了一个换行符,将正则表达式分成两部分:
((\d{3}|\(\d{3}\))?(\s|-|\.)?\d{3}(\s|-|\.)\d{4}
(\s*(ext|x|ext.)\s*\d{2,5})?)
只需在 {4} 之后点击 canc 并将其放在 regex101 link 的同一行中,您就会看到它按预期工作。
((\d{3}|\(\d{3}\))?(\s|-|\.)?\d{3}(\s|-|\.)\d{4}(\s*(ext|x|ext.)\s*\d{2,5})?)
这是使用视觉助手时的一个常见错误,每当您看到一些奇怪的行为时,只需仔细检查您的正则表达式是否在同一行上
我已经帮你解决了,你刚刚把 ?
搞砸了。
这是新的正则表达式:https://regex101.com/r/OIMqNB/2