Введение в регулярные выражения в Python
Регулярные выражения - это команды для сложного поиска и замены (или просто поиска). Они позволяют делать очень интересные вещи, но, к сожалению, довольно тяжелы в освоении.
Чтобы начать работу с регулярными выражениями
в Python, нам нужно импортировать специальный
модуль re
:
import re
Модуль re
включает в себя методы,
предназначенных для работы с регулярными
выражениями. Регулярное выражение
представляет собой набор команд и состоит
из двух типов символов: из тех, которые
обозначают сами себя и из символов-команд,
которые называются специальные символы.
Знакомство с регулярными выражениями лучше
начать на примере метода sub
, который
используется для замен в строке. Первым
параметром метод принимает что менять,
вторым - на что менять. В третьем параметре
указываем строку, в которой нужно сделать
замену. В четвертом необязательном параметре
задаем количество замен. Самая простая
замена с помощью данного метода будет
выглядеть вот так:
res = re.sub('a', '!', 'bab')
print(res) # выведет 'b!b'
Как вы заметили, в регулярном выражении
буквы обозначают сами себя. Тоже самое
относится и к цифрам. Давайте заменим цифру
2
на !
:
res = re.sub('2', '!', '12abc3')
print(res) # выведет '1!abc3'
А вот точка является специальным символом
и обозначает любой символ. В следующем
примере давайте найдем подстроку по такому
шаблону: буква 'x'
, затем любой
символ, затем опять буква 'x'
:
res = re.sub('x.x', '!', 'xax eee')
print(res) # выведет '! eee'
Дана строка:
txt = 'ahb acb aeb aeeb adcb axeb'
Напишите регулярку, которая найдет строки
'ahb'
, 'acb'
, 'aeb'
по шаблону: буква 'a'
, любой
символ, буква 'b'
.
Дана строка:
txt = 'aba aca aea abba adca abea'
Напишите регулярку, которая найдет строки
'abba'
, 'adca'
, 'abea'
по шаблону: буква 'a'
, 2
любых символа, буква 'a'
.
Дана строка:
txt = 'aba aca aea abba adca abea'
Напишите регулярку, которая найдет строки
'abba'
и 'abea'
, не захватив
'adca'
.