Язык программирования Python

Множественная замена


В некоторых приложениях требуется производить в тексте сразу несколько замен. Для решения этой задачи можно использовать метод 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.



Содержание раздела