У меня возникла ситуация, когда пользователь отправляет адрес, и мне нужно заменить пользовательскими вводами на мои ключи. Я могу присоединиться к этому, используя адрес без суффиксов.соответствие регулярному выражению и замена нескольких шаблонов
ВАГОН TRAIL КРЫТАЯ
Chisholm TRAIL
ОЗЕРО TRAIL
Chestnut St
ЛИНКОЛЬНА УЛИЦА
к:
ВАГОН
КРЫТАЯЧишоого
LAKE
КАШТАН
LINCOLN
Однако я не могу понять, как этот код может быть написано, чтобы заменить только последнее слово. я получаю:
LINCOLN
КАШТАНА
Чишоого
LAKEAIL
CHISHOLMAIL
РАСПРОСТРАНЯЕТСЯ WAGONL
Я попытался регулярное выражение многословный, re.sub и $.
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
Спасибо! Так оно и было. – George