我似乎得到了我不希望存储到此数组中的其他变量。运行以下代码后我希望返回的是
[('999-999-9999'), ('999 999 9999'), ('999.999.9999')]
然而,我最终得到的是以下
[('999-999-9999', '-', '-'), ('999 999 9999', ' ', ' '), ('999.999.9999', '.', '.')]
以下是我所拥有的
teststr = '''
Phone: 999-999-9999,
999 999 9999,
999.999.9999
'''
phoneRegex = re.compile(r'(\d{3}(-|\s|\.)\d{3}(-|\s|\.)\d{4})')
regexMatches = phoneRegex.findall(teststr)
print(regexMatches)
答案 0 :(得分:3)
将内部捕捉组转为非捕捉组。
(?:-|\s|\.)
或
[-\s.]
示例:
>>> import re
>>> teststr = '''
Phone: 999-999-9999,
999 999 9999,
999.999.9999
'''
>>> re.findall(r'\b(\d{3}[-.\s]\d{3}[.\s-]\d{4})\b', teststr)
['999-999-9999', '999 999 9999', '999.999.9999']
>>>