ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)
Среда, 18 декабря, 2024

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

Python 3 - Обзор

Любые строковые данные можно заменить другой строкой в ​​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.ru\nmanager@yahoo.com \nandreyex@andreyex.ru'

# Заменить конкретную часть строка на основе шаблона
replacedText = re.sub('@[a-z]*', '@andreyex', emails)

# Вывести исходную строку
print("Первоначальный текст:", emails)

# Печать замененных строк
print("\nЗамененный текст:", replacedText)

 

Вывод:

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

 

Вывод:

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

Exit mobile version