Любые строковые данные можно заменить другой строкой в Python с помощью метода replace(). Но если вы хотите заменить любую часть строки на соответствие определенному шаблону, вам необходимо использовать регулярное выражение. Он используется для поиска определенного шаблона в конкретном строковом значении, и строка будет заменена другой строкой, если будет найдено какое-либо совпадение. Python использует модуль ‘re’ для использования шаблона регулярного выражения в скрипте для поиска, сопоставления или замены. Использование шаблонов регулярных выражений для замены строк немного медленнее, чем обычный метод replace(), но многие сложные поиски и замены можно легко выполнить с помощью шаблона. Вы можете заменить строку различными способами, используя шаблон в Python. В этой статье показаны некоторые распространенные варианты использования шаблона для замены строки.
Прежде чем использовать шаблон для замены строки, вы должны знать, как написать шаблон регулярного выражения. Вы можете использовать любое строковое значение в качестве шаблона для точного совпадения. Но для конкретного поиска вы должны написать шаблон регулярного выражения с использованием метасимвола. Список наиболее часто используемых метасимволов для написания шаблонов приведен ниже со смыслом.
Характер | Описание |
. | Используется для соответствия любому одиночному символу, кроме новой строки. |
^ | Используется для сопоставления любого символа или строки в начале строки. |
$ | Используется для сопоставления любого символа или строки в конце строки. |
+ | Используется для сопоставления одного или нескольких экземпляров шаблона. |
? | Используется для соответствия нулю или одному вхождению шаблона. |
() | Используется для группировки паттернов. |
{} | Используется для соответствия на основе нижнего или верхнего или нижнего и верхнего пределы. |
[] | Используется для сопоставления символов на основе заданного диапазона. |
| | Используется для сопоставления шаблонов на основе логики OR. |
\ | Используется для определения определенных символов или не символов, цифр или нецифровые. |
Метод Replace:
В Python для замены строки используется метод sub() модуля re.
Синтаксис:
sub(pattern, replace, string, count=0, flags=0)
Здесь шаблон, замена и строка являются обязательными аргументами. Если шаблон совпадает с любой частью строки, он заменит часть значением замены аргумента. Два других аргумента необязательны. Некоторые варианты использования вышеупомянутых метасимволов с методом sub() показаны в следующих примерах замены строк.
Если вам известно точное строковое значение, которое вы хотите искать в основной строке, вы можете использовать значение поисковой строки в качестве шаблона в методе sub(). Создайте файл Python со следующим скриптом. Здесь строковое значение поиска – «дождливый», а заменяющее строковое значение – «солнечный».
#!/usr/bin/env python3 # Импортировать модуль регулярных выражений # Import regex module import re # Определить строку orgStr = "Это дождливый день" # Заменить строку repStr = re.sub("дождливый", "солнечный", orgStr) # Распечатать исходную строку print("Оригинальный текст:", orgStr) # Распечатать замененную строку print("Замененный текст:", repStr)
Создайте файл python со следующим сценарием, чтобы узнать об использовании ‘^’ в шаблоне регулярного выражения. Здесь ‘ ^ [A-Za-z] +’ используется в качестве шаблона поиска. Он будет искать все буквенные символы от A до Z и от a до z в начале текста и заменять его пустым значением. Замененная строка будет напечатана в верхнем регистре для метода upper().
#!/usr/bin/env python3 # Импортировать модуль регулярных выражений import re # Возьмите строку input originalText = input("Введите текст\n") # Замените строку на основе шаблона replacedText = re.sub('^[A-Za-z]+' , '', originalText).upper() # Распечатать замененную строку print("Замененный текст:", replacedText)
Вывод:
Здесь «Привет, добро пожаловать в andreyex» принимается как ввод, а слово «Привет» заменяется на ‘ ’ для шаблона.
Создайте файл python со следующим сценарием, чтобы узнать об использовании символа «$» в шаблоне регулярного выражения. Здесь ‘[ a-z0-9] + $’ используется в качестве шаблона в скрипте. Он будет искать все небольшие алфавитов и цифры в конце текста, и если возвращается true, то соответствующая часть будет заменена на строке «ru».
#!/usr/bin/env python3 # Импортировать модуль регулярных выражений import re # Возьмите строку input originalText = input("Введите URL-адрес\n") # Замените строку на основе шаблона replacedText = re.sub('[a-z0-9]+$' , 'ru', originalText) # Распечатать замененную строку print("Замененный текст:", replacedText)
Вывод:
Здесь “https://www.google.com” используется как вводимый текст, а после замены “https://www.google.ru” печатается как вывод.
Создайте файл Python со следующим скриптом для поиска и замены части текста в том месте, где совпадает шаблон. Здесь список адресов электронной почты назначается в виде текста переменной с именем emails. ‘@[az]’ – шаблон для поиска. Он будет искать любую подстроку, начинающуюся с маленьких букв, за которыми следует символ «@». Если какая-либо подстрока совпадает, она заменит эту подстроку на @andreyex.
#!/usr/bin/env python3 # Импортировать модуль регулярных выражений import re # Определить строку emails = '\nadmin@google.ru\nmanager@yahoo.com \nandreyex@andreyex.ru' # Заменить конкретную часть строка на основе шаблона replacedText = re.sub('@[a-z]*', '@andreyex', emails) # Вывести исходную строку print("Первоначальный текст:", emails) # Печать замененных строк print("\nЗамененный текст:", replacedText)
Вывод:
Здесь каждая доменная часть адреса электронной почты, назначенная в тексте, заменена на «andreyex».
В этой статье показаны некоторые очень распространенные варианты использования шаблонов регулярных выражений для замены строк. В python существует множество других вариантов для написания различных типов простых и сложных шаблонов для поиска и замены строки текста.