Введение в регулярные выражения в 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'
.