Ich habe eine Situation, in der ein Benutzer eine Adresse sendet und ich Benutzereingaben zu meinen Schlüsseln ersetzen muss. Ich kann dies mit einer Adresse ohne Suffixe verbinden.Regex übereinstimmen und mehrere Muster ersetzen
FALLEN WAGON TRAIL
Chisholm Trail
Seespur
CHESTNUT ST
LINCOLN STREET
zu:
FALLEN WAGON
CHISHOLM
LAKE
KASTANIE
LINCOLN
Allerdings kann ich nicht verstehen, wie dieser Code kann nur das letzte Wort zu ersetzen, geschrieben werden. ich:
LINCOLN
KASTANIE
CHISHOLM
LAKEAIL
CHISHOLMAIL
FALLEN WAGONL
Ich habe versucht, regex ausführlich, re.sub und $.
import re
target = '''
LINCOLN STREET
CHESTNUT ST
CHISHOLM TR
LAKE TRAIL
CHISHOLM TRAIL
COVERED WAGON TRL
'''
rdict = {
' ST': '',
' STREET': '',
' TR': '',
' TRL': '',
}
robj = re.compile('|'.join(rdict.keys()))
re.sub(' TRL', '',target.rsplit(' ', 1)[0]), target
result = robj.sub(lambda m: rdict[m.group(0)], target)
print result
Dank! Das hat es getan. – George