Замена строки Python с использованием шаблона

Любые строковые данные можно заменить другой строкой в ​​Python с помощью метода replace(). Но если вы хотите заменить любую часть строки на соответствие определенному шаблону, вам необходимо использовать регулярное выражение. Он используется для поиска определенного шаблона в конкретном строковом значении, и строка будет заменена другой строкой, если будет найдено какое-либо совпадение. Python использует модуль ‘re’ для использования шаблона регулярного выражения в скрипте для поиска, сопоставления или замены. Использование шаблонов регулярных выражений для замены строк немного медленнее, чем обычный метод replace(), но многие сложные поиски и замены можно легко выполнить с помощью шаблона. Вы можете заменить строку различными способами, используя шаблон в Python. В этой статье показаны некоторые распространенные варианты использования шаблона для замены строки.

 

Список метасимволов:

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














    Характер Описание
    . Используется для соответствия любому одиночному символу, кроме новой строки.
    ^ Используется для сопоставления любого символа или строки в начале строки.
   $ Используется для сопоставления любого символа или строки в конце строки.
    + Используется для сопоставления одного или нескольких экземпляров шаблона.
    ? Используется для соответствия нулю или одному вхождению шаблона.
  () Используется для группировки паттернов.
  {} Используется для соответствия на основе нижнего или верхнего или нижнего и верхнего

пределы.

   [] Используется для сопоставления символов на основе заданного диапазона.
   | Используется для сопоставления шаблонов на основе логики OR.
   Используется для определения определенных символов или не символов, цифр или нецифровые.

 

Метод Replace:

В Python для замены строки используется метод sub() модуля re.

Синтаксис:

sub(pattern, replace, string, count=0, flags=0)

Здесь шаблон, замена и строка являются обязательными аргументами. Если шаблон совпадает с любой частью строки, он заменит часть значением замены аргумента. Два других аргумента необязательны. Некоторые варианты использования вышеупомянутых метасимволов с методом sub() показаны в следующих примерах замены строк.

 

Пример-1: заменить строку точным соответствием

Если вам известно точное строковое значение, которое вы хотите искать в основной строке, вы можете использовать значение поисковой строки в качестве шаблона в методе sub(). Создайте файл Python со следующим скриптом. Здесь строковое значение поиска — «дождливый», а заменяющее строковое значение — «солнечный».

#!/usr/bin/env python3

# Импортировать модуль регулярных выражений



# Import regex module

import re



# Определить строку

orgStr = "Это дождливый день"



# Заменить строку

repStr = re.sub("дождливый", "солнечный", orgStr)



# Распечатать исходную строку

print("Оригинальный текст:", orgStr)



# Распечатать замененную строку

print("Замененный текст:", repStr)

 

 

Пример-2: поиск и замена строки в начале

Создайте файл 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» принимается как ввод, а слово «Привет» заменяется на ‘ ’ для шаблона.

 

Пример-3: поиск и замена строки в конце

Создайте файл 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» печатается как вывод.

 

Пример-4: поиск и замена определенной части строки

Создайте файл Python со следующим скриптом для поиска и замены части текста в том месте, где совпадает шаблон. Здесь список адресов электронной почты назначается в виде текста переменной с именем emails. ‘@[az]’ — шаблон для поиска. Он будет искать любую подстроку, начинающуюся с маленьких букв, за которыми следует символ «@». Если какая-либо подстрока совпадает, она заменит эту подстроку на @andreyex.

#!/usr/bin/env python3

# Импортировать модуль регулярных выражений

import re



# Определить строку

emails = 'nadmin@google.runmanager@yahoo.com nandreyex@andreyex.ru'



# Заменить конкретную часть строка на основе шаблона

replacedText = re.sub('@[a-z]*', '@andreyex', emails)



# Вывести исходную строку

print("Первоначальный текст:", emails)



# Печать замененных строк

print("nЗамененный текст:", replacedText)

 

Вывод:

Здесь каждая доменная часть адреса электронной почты, назначенная в тексте, заменена на «andreyex».

 

Вывод:

В этой статье показаны некоторые очень распространенные варианты использования шаблонов регулярных выражений для замены строк. В python существует множество других вариантов для написания различных типов простых и сложных шаблонов для поиска и замены строки текста.



2021-02-16T22:19:59
Python