为什么此python正则表达式无法找到完整的电话号码?

时间:2018-08-13 20:44:09

标签: regex python-3.x

我想制作一种可以带文字的东西,并给我列出的所有电话号码,即使它们以不寻常或笨拙的格式输入。我不能将分号用作结尾字符,即使它们写得不太清楚,我也希望它能起作用。理想情况下,我应该可以在任何文档上使用它,并且可以给我其中的所有电话号码。贝娄是我制作的程序,它无法正常工作。为什么给我一大堆半完成的数字?

import re

message = '''
Here's a bunch of phone numbers in different formats. Make something that will give me all of them.
(111)-111-1111; (111) 111 1111; (111)-111 1111; (111) 111-1111;
222-222-2222; 222 222 2222; 222-222 2222; 222 222-2222;
333-3333; 333 3333;
'''

phoneNumRegex = re.compile(r'(\(?\d{3}\)?-|\(?\d{3}\)?\s)?\d{3}(-|\s)\d{4}')
print(phoneNumRegex.findall(message))

这是我从这段代码中得到的输出:

[('(111)-', '-'), ('(111) ', ' '), ('(111)-', ' '), ('(111) ', '-'), ('222-', '-'), ('222 ', ' '), ('222-', ' '), ('222 ', '-'), ('', '-'), ('', ' ')]

谢谢。

0 个答案:

没有答案