【发布时间】:2017-04-04 18:09:40
【问题描述】:
我有一个纯文本字符串,想从中提取任何格式的电话号码。 这是我的正则表达式:
r = re.compile(r"(\d{3}[-\.\s]??\d{3}[-\.\s]??\d{4}|\(\d{3}\)[-\s*]\d{3}[-\.\s]??\d{4})")
它正确提取了以下匹配项:
617.933.6444
(880)-567-4565
(880) 567-4565
222-333-8888
555 666 4444
9999999999
但是当我在文本中有798681505951 时,如何避免得到7986815059?
如何为我的正则表达式添加结尾? (前后不能包含字母和数字,准确的数必须是10)
!!!! 决定
如果有人需要在字符串中查找美国电话号码,请使用最后一条 Wiktor Stribiżew 评论中的链接。
【问题讨论】:
-
在开头添加
^,在末尾添加$。 -
我有一个孔字符串作为纯文本。在开头添加
^并在末尾添加$无济于事 -
我真的不明白你是怎么输入的。 regex101.com/r/QzRJIK/3
-
嗯,你的意思是你有像here这样的输入吗?你想提取那些子字符串吗?
-
现在看来是正确的。我的错,我没有想到我可以将第一个 \b 放在范围内。谢谢