В Python для выполнения нескольких замен в строке без перетирания результатов предыдущих замен можно воспользоваться методом sub()
из модуля re
.
Для начала, необходимо импортировать модуль re
:
import re
Затем, создадим строку, в которой будут выполняться замены:
string = "Привет, мир!"
Допустим, нам нужно заменить все вхождения буквы "и" на "е" и все вхождения буквы "е" на "и". Для этого создадим список из кортежей, где каждый кортеж содержит два элемента: регулярное выражение для поиска и строку для замены:
replacements = [ (r"и", "е"), (r"е", "и") ]
Теперь, можно выполнить несколько замен в цикле, используя метод sub()
:
for pattern, replacement in replacements: string = re.sub(pattern, replacement, string)
Замены будут выполняться в порядке, указанном в списке replacements
. В результате, в переменной string
будет строка, в которой буквы "и" будут заменены на "е", а буквы "е" на "и":
print(string) # Правит, мар!
В данном примере сначала выполняется замена буквы "и" на "е", а затем, после обновления строки, происходит замена уже новых букв "е" на "и". Важно учесть, что если замены содержат перекрывающиеся шаблоны, результат может быть непредсказуемым.