Пропустить до содержимого

Как использовать регулярные выражения в Python для замены?

[

Как заменить строку или подстроку в Python

Одним из часто используемых способов в Python для удаления или замены всей строки или её подстроки является метод .replace() и функция re.sub() из модуля re. В этом руководстве мы разберём, как использовать эти инструменты и создадим скрипт для очистки текстового чата от личных данных и нецензурных слов.

Применение метода .replace() для замены строк

Самый простой способ заменить строку в Python - использовать метод .replace():

"Это фальшивый Python".replace("фальшивый", "настоящий")

Результат выполнения этого кода будет следующим:

'Это настоящий Python'

Вы видите, что мы можем применить метод .replace() к любой строке и указать два аргумента: первый - это строка, которую мы хотим заменить, а второй - это новая строка для замены.

Примечание: Хотя интерактивная оболочка Python отображает результат метода .replace(), сама строка остаётся неизменной. Вы можете это отследить, присвоив строку переменной:

name = "Это фальшивый Python"
name.replace("фальшивый", "настоящий")

Результат:

'Это настоящий Python'
name

Результат:

'Это фальшивый Python'
name = name.replace("фальшивый", "настоящий")

Результат:

'Это настоящий Python'
name

Результат:

'Это настоящий Python'

Обратите внимание, что при вызове метода .replace() без присваивания значения переменной name значение не меняется. Но когда вы присваиваете результат метода name.replace() переменной name, значение строки меняется.

Теперь давайте применим эти знания к нашему чату.

transcript = """
[support_tom] 2022-08-24T10:02:23+00:00 : Чем я могу вам помочь?
[johndoe] 2022-08-24T10:03:15+00:00 : Я НЕ МОГУ ПОДКЛЮЧИТЬСЯ К МОЕЙ ПРОКЛЯТОЙ УЧЕТНОЙ ЗАПИСИ
[support_tom] 2022-08-24T10:03:30+00:00 : Вы уверены, что у вас не включена клавиша Caps Lock?
[johndoe] 2022-08-24T10:04:03+00:00 : К черту! Вы правы!
"""

Теперь давайте заменим в этом тексте слово “ПРОКЛЯТОЙ” на символ 😤:

transcript.replace("ПРОКЛЯТОЙ", "😤")

Результат:

[support_tom] 2022-08-24T10:02:23+00:00 : Чем я могу вам помочь?
[johndoe] 2022-08-24T10:03:15+00:00 : Я НЕ МОГУ ПОДКЛЮЧИТЬСЯ К МОЕЙ 😤 УЧЕТНОЙ ЗАПИСИ
[support_tom] 2022-08-24T10:03:30+00:00 : Вы уверены, что у вас не включена клавиша Caps Lock?
[johndoe] 2022-08-24T10:04:03+00:00 : К черту! Вы правы!

Таким образом, мы успешно заменили подстроку в нашей строке.

На следующем этапе мы научимся применять более сложные правила замены с помощью функции re.sub().