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

Как использовать функцию replace в Python?

[

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

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

>>> "Fake Python".replace("Fake", "Real")

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

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

>>> name = "Fake Python"
>>> name.replace("Fake", "Real")
>>> name
'Fake Python'
>>> name = name.replace("Fake", "Real")
>>> name

Теперь пришло время применить эти знания к транскрипту:

transcript = """\
[support_tom] 2022-08-24T10:02:23+00:00 : What can I help you with?
[johndoe] 2022-08-24T10:03:15+00:00 : I CAN'T CONNECT TO MY BLASTED ACCOUNT
[support_tom] 2022-08-24T10:03:30+00:00 : Are you sure it's not your caps lock?
[johndoe] 2022-08-24T10:04:03+00:00 : Blast! You're right!"""
transcript.replace("BLASTED", "😤")

Как видно, мы используем метод .replace() для замены слова “BLASTED” на эмодзи ”😤” в транскрипте. Результат будет следующим:

[support_tom] 2022-08-24T10:02:23+00:00 : What can I help you with?
[johndoe] 2022-08-24T10:03:15+00:00 : I CAN'T CONNECT TO MY 😤 ACCOUNT
[support_tom] 2022-08-24T10:03:30+00:00 : Are you sure it's not your caps lock?
[johndoe] 2022-08-24T10:04:03+00:00 : 😤! You're right!

Теперь вы знаете, как заменить подстроку в Python с использованием метода .replace().

Настройте несколько правил замены

Возможно, вам потребуется заменить несколько различных строк или подстрок в вашем тексте. В таком случае, вы можете использовать цепочку вызовов .replace() для применения нескольких правил замены. Например:

text = "Programming is fun and challenging."
text = text.replace("fun", "exciting").replace("challenging", "rewarding")

В результате получим:

"Programming is exciting and rewarding."

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

Используйте re.sub() для создания сложных правил

Вместо метода .replace() вы также можете использовать функцию re.sub() для замены строк или подстрок в Python. re.sub() является более мощным инструментом, который позволяет использовать регулярные выражения для определения шаблонов замены.

Вот пример использования re.sub() для замены слова “Python” на “Java”:

import re
text = "I love Python!"
text = re.sub(r"Python", "Java", text)

Результат будет следующим:

"I love Java!"

Преимущество re.sub() заключается в том, что вы можете использовать более сложные шаблоны замены с помощью регулярных выражений. Например, вы можете заменить все числа в тексте на слово “number”:

import re
text = "There are 123 apples and 456 oranges."
text = re.sub(r"\d+", "number", text)

Результат будет следующим:

"There are number apples and number oranges."

Используйте обратный вызов с re.sub() для большего контроля

Вы также можете использовать обратный вызов (callback) с re.sub() для более точной обработки замены. Обратный вызов - это функция, которая будет вызвана для каждого совпадения шаблона замены и вернет соответствующую строку замены.

Вот пример использования обратного вызова с re.sub() для замены чисел на их квадраты:

import re
def square(match):
num = int(match.group())
return str(num ** 2)
text = "There are 2 apples and 3 oranges."
text = re.sub(r"\d+", square, text)

Результат будет следующим:

"There are 4 apples and 9 oranges."

Обратный вызов square() принимает объект совпадения (match) и возвращает квадрат числа из совпадения. Этот квадрат затем подставляется вместо соответствующего числа в тексте.

Примените обратный вызов к скрипту

Теперь вы знаете, как использовать re.sub() с обратным вызовом для более сложной и гибкой замены строк и подстрок в Python. Вы можете использовать этот метод для создания скрипта, который применяет сложные правила замены к вашим текстовым данным.

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