我在替换字符串的一部分时遇到了问题。现在这个代码。我的目标是为每个包含此词典中的键的字符串。
mapping = { "St": "Street",
"St.": "Street",
'Rd': 'Road',
'Rd.': 'Road',
'Ave': 'Avenue',
'Ave.': 'Avenue',
'Ln':'Lane',
'Ln.':'Lane',
'Dr':'Drive',
'Dr.':'Drive',
'Pl':'Place',
'Pl.':'Place',
'Pkwy':'Parkway',
'Blvd.': 'Boulevard',
'Blvd': 'Boulevard'
}
用字典中的值替换字符串的那部分。
street_type_re = re.compile(r'\b\S+\.?$', re.IGNORECASE)
def update_name(name, mapping):
for key,value in mapping.iteritems():
if key in name:
newname = re.sub(street_type_re,value,name)
print name,'==>',newname
return name
现在代码正在做这样的事情
National Rd SW ==> National Rd Road
我需要修复它才能返回此
National Rd SW ==> National Road SW
答案 0 :(得分:1)
newname = re.sub(key,value,name)
您可以简单地替换key
,而不是将其与预编译的正则表达式或
newname = re.sub(r"\b"+key+r"\b",value,name)
您的$