Python Регулярные Выражения: Урок 12 (Часть 1)

Регулярные выражения — сложная, но необходимая тема для любого программиста. Этот урок, первая часть из двух, посвящён знакомству с основами работы с регулярными выражениями в Python. Рассмотрим основные методы и примеры их использования, отложив более сложные аспекты на следующий урок.

Что такое регулярные выражения?

Регулярное выражение — это строка, задающая шаблон поиска подстрок в тексте. Один шаблон может соответствовать множеству различных подстрок. Проще говоря, это шаблон для поиска.

Например, нужно найти количество упоминаний фамилии «Онегин» в тексте романа «Евгений Онегин». Регулярные выражения позволяют легко выполнить этот поиск, определяя шаблон «Онегин» и находя все его вхождения в тексте.

Любая строка или набор специальных командных последовательностей может быть регулярным выражением. Более сложные последовательности и команды рассмотрим во второй части урока.

Модуль re в Python

В Python для работы с регулярными выражениями используется модуль re, поставляемый вместе с интерпретатором. Его нужно импортировать в программу:

import re

Строка для примеров:

text = "сисидисидисидиси"

Основные методы модуля re

Рассмотрим основные методы модуля re на примерах:

match()

Метод match() ищет совпадение с заданным шаблоном только в начале строки.

result = re.match("сиси", text)
print(result) # Выведет объект match, если совпадение найдено в начале строки

Если шаблон не находится в начале строки, метод вернет None.

result = re.match("диси", text)
print(result) # Выведет None

search()

Метод search() ищет совпадение с заданным шаблоном в всей строке и возвращает первое найденное совпадение.

result = re.search("диси", text)
print(result) # Выведет объект match с информацией о первом найденном совпадении
print(result.span()) # Выведет кортеж с начальной и конечной позицией совпадения
print(result.group(0)) # Выведет найденную подстроку

findall()

Метод findall() ищет все совпадения с заданным шаблоном и возвращает их в виде списка.

result = re.findall("диси", text)
print(result) # Выведет список всех найденных совпадений

split()

Метод split() разделяет строку на список подстрок по заданному шаблону.

result = re.split("си", text)
print(result) # Разделит строку по каждому вхождению "си"

Третий аргумент maxsplit ограничивает количество разбиений.

result = re.split("си", text, maxsplit=2)
print(result) # Разделит строку только два раза

sub()

Метод sub() заменяет все совпадения шаблона на указанную подстроку.

result = re.sub("и", "Д", text)
print(result) # Заменит все "и" на "Д"

fullmatch()

Метод fullmatch() проверяет, совпадает ли весь шаблон со всей строкой.

result = re.fullmatch("сисидисидисидиси", text)
print(result) # Вернет объект match, если строка полностью совпадает с шаблоном

Применение регулярных выражений

Регулярные выражения применяются в различных задачах:

  • Извлечение телефонных номеров из текста.
  • Поиск и замена текста в больших документах.
  • Парсинг данных из веб-страниц.
  • Обработка текстовых файлов.

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

Что будем искать? Например,программа