Увядзенне ў рэгулярныя выразы ў 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'.