Множественная замена
В некоторых приложениях требуется производить в тексте сразу несколько замен. Для решения этой задачи можно использовать метод sub() вместе со специальной функцией, которая и будет управлять заменами:
import re
def multisub(subs_dict, text): def _multisub(match_obj): return str(subs_dict[match_obj.group()])
multisub_re = re.compile("|".join(subs_dict.keys())) return multisub_re.sub(_multisub, text)
repl_dict = {'one': 1, 'two': 2, 'three': 3}
print multisub(repl_dict, "One, two, three")
Будет выведено
One, 2, 3
В качестве упражнения предлагается сделать версию, которая бы не учитывала регистр букв.
В приведенной программе вспомогательная функция _multisub() по полученному объекту с результатом сравнения возвращает значение из словаря с описаниями замен subs_dict.