Введение в регулярные выражения в Python
Регулярные выражения - это команды для сложного поиска и замены (или просто поиска). Они позволяют делать очень интересные вещи, но, к сожалению, довольно тяжелы в освоении.
Чтобы начать работу с регулярными выражениями
в Python, нам нужно импортировать специальный
модуль re:
import re
Модуль re включает в себя методы,
предназначенных для работы с регулярными
выражениями. Регулярное выражение
представляет собой набор команд и состоит
из двух типов символов: из тех, которые
обозначают сами себя и из символов-команд,
которые называются специальные символы.
Знакомство с регулярными выражениями лучше
начать на примере метода sub, который
используется для замен в строке. Первым
параметром метод принимает что менять,
вторым - на что менять. В третьем параметре
указываем строку, в которой нужно сделать
замену. В четвертом необязательном параметре
задаем количество замен. Самая простая
замена с помощью данного метода будет
выглядеть вот так:
res = re.sub('a', '!', 'bab')
print(res) # выведет 'b!b'
Как вы заметили, в регулярном выражении
буквы обозначают сами себя. Toже самое
относится и к цифрам. Давайте заменим цифру
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'.