【发布时间】:2012-12-27 19:59:20
【问题描述】:
我有以下两个列表:
input = ['MAPLEWOOD AVE', 'LYNNDALE ', 'SUGAR DR']
ref = ['LYNNDALE (?:RD)?', 'HOMAN (?:AVE)?', 'MAPLEWOOD (?:AVE)?', 'LYNNDALE (?:LN)?']
我想在input 和ref 中查找每个元素的所有匹配项。输出将是一个字典,其中每个键都是一个 input 元素,每个值都是一个与相应 input 元素匹配的 ref 元素,如下所示:
{'MAPLEWOOD AVE' : 'MAPLEWOOD AVE', 'LYNNDALE ' : 'LYNNDALE RD', 'LYNNDALE LN', 'SUGAR DR':}
以下内容允许我遍历input 以在ref 中搜索findall 匹配项(其中包含嵌入的正则表达式分组)。但是,我无法从 ref 检索相应的匹配元素作为每个输入元素旁边的值:
combined = "(" + ")|(".join(ref) + ")"
l = []
for i in input:
if re.findall(combined,i):
l.append(i)
...
MAPLEWOOD AVE
LYNNDALE
【问题讨论】:
标签: python regex dictionary