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