Ho una situazione in cui un utente invia un indirizzo e devo sostituire gli input utente alle mie chiavi. Posso aderire a questo utilizzando un indirizzo senza suffissi.corrispondenza regolare e sostituire più modelli
COPERTO Wagon Trail
Chisholm Trail
Lake Trail
CHESTNUT ST
LINCOLN STREET
a:
COPERTO WAGON
CHISHOLM
LAGO
CASTAGNO
LINCOLN
Tuttavia non posso comprendere come questo codice può essere scritto per sostituire solo l'ultima parola. ottengo:
LINCOLN
CASTAGNO
CHISHOLM
regex LAKEAIL
CHISHOLMAIL
COPERTO WAGONL
ho provato verbose, re.sub e $.
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
Grazie! Questo è stato. – George