Фігурныя дужкі ў рэгулярных выразах Python

Аператары '+', '*', '?' добрыя, аднак, з іх дапамогай нельга паказаць канкрэтную колькасць паўтарэнняў. У гэтым выпадку вам на дапамогу прыйдзе аператар {}.

Працуе ён наступным чынам: {5} - пяць паўтарэнняў, {2,5} – паўтараецца ад двух да пяці (абодва ўключна), {2,} - паўтараецца два і больш разоў. Паглядзіце прыклады:

Прыклад

У гэтым прыкладзе шаблон пошуку выглядае так: літара 'x', літара 'a' адзін або два разы, літара 'x':

pythontxt = 'xx xax xaax xaaax'
res = re.sub('xa{1,2}x', '!', txt)

print(res)

Вынік выканання кода:

python'xx ! ! xaaax'

Прыклад

У гэтым прыкладзе шаблон пошуку выглядае так: літара 'x', літара 'a' два разы і больш, літара 'x':

pythontxt = 'xx xax xaax xaaax'
res = re.sub('xa{2,}x', '!', txt)

print(res)

Вынік выканання кода:

python'xx xax ! !'

Прыклад

У гэтым прыкладзе шаблон пошуку выглядае так: літара 'x', літара 'a' тры разы, літара 'x':

pythontxt = 'xx xax xaax xaaax'
res = re.sub('xa{3}x', '!', txt)

print(res)

Вынік выканання кода:

python'xx xax xaax !'

Прыклад

У гэтым прыкладзе шаблон пошуку выглядае так: літара 'a' дзесяць разоў:

pythontxt = 'aaa aaaaaaaaaa aaa'
res = re.sub('a{10}', '!', txt)

print(res)

Вынік выканання кода:

python'aaa ! aaa'

Прыклад

У гэтым прыкладзе ёсць такі шаблон: літара 'x', літара 'a' тры разы разы і менш, літара 'x'. Для таго, каб яго рэалізаваць, перад лічбай 3 можна не паказваць лік, а паставіць проста коску:

pythontxt = 'xx xax xaax xaaax'
res = re.sub('xa{,3}x', '!', txt)

print(res)

Вынік выканання кода:

python'! ! ! !'

Прыклад

Нуль перад 3 таксама дапушчальны:

pythontxt = 'xx xax xaax xaaax'
res = re.sub('xa{0,3}x', '!', txt)

print(res)

Вынік выканання кода:

python'! ! ! !'

Практычныя задачы

Задание 1

Дадзены радок:

pythontxt = 'aa aba abba abbba abbbba abbbbba'

Напішыце рэгулярку, якая знойдзе радкі 'abba', 'abbba', 'abbbba' і толькі іх.

Задание 2

Дадзены радок:

pythontxt = 'aa aba abba abbba abbbba abbbbba'

Напішыце рэгулярку, якая знойдзе радкі віду 'aba', у якіх 'b' сустракаецца менш за 3 разы (ўключна).

Задание 3

Дадзены радок:

pythontxt = 'aa aba abba abbba abbbba abbbbba'

Напішыце рэгулярку, якая знойдзе радкі віду 'aba', у якіх 'b' сустракаецца больш за 4 разы (ўключна).