Как выполнить несколько замен в строке так, следующие замены не перетирали результат предыдущих?

В 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)  # Правит, мар!

В данном примере сначала выполняется замена буквы "и" на "е", а затем, после обновления строки, происходит замена уже новых букв "е" на "и". Важно учесть, что если замены содержат перекрывающиеся шаблоны, результат может быть непредсказуемым.