我在字典中有一个列表,它包含正则表达式,程序按预期运行。但是,当我将列表转换为元组时,我会在位置0处获得错误错误转义(模式结束)。
以下给出了错误。
import re
phone_num = '660-349-6829'
dict20 = {"phone": (r'\d{3}[-\.\s]??\d{3}[-\.\s]??\d{4}|\(\d{3}\)\s*\d{3}[-\.\s]??\d{4}|\d{3}[-\.\s]??\d{4}')}
for k in dict20["phone"]:
print(k)
results = re.findall(k, phone_num)
print(results)
self.string, len(self.string) - 1) from None
sre_constants.error: bad escape (end of pattern) at position 0
这很好用(注释列表而不是元组)。
import re
phone_num = '660-349-6829'
dict20 = {"phone": [r'\d{3}[-\.\s]??\d{3}[-\.\s]??\d{4}|\(\d{3}\)\s*\d{3}[-\.\s]??\d{4}|\d{3}[-\.\s]??\d{4}']}
for k in dict20["phone"]:
print(k)
results = re.findall(k, phone_num)
print(results)
答案 0 :(得分:2)
这不是一个元组 - 只是括号。你必须在')之前添加一个逗号。把它变成一个元组。