Python正则表达式错误与元组。与列表一起使用。逃脱不良(模式结束)

时间:2018-02-22 17:11:03

标签: python regex

我在字典中有一个列表,它包含正则表达式,程序按预期运行。但是,当我将列表转换为元组时,我会在位置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)

1 个答案:

答案 0 :(得分:2)

这不是一个元组 - 只是括号。你必须在')之前添加一个逗号。把它变成一个元组。