Фігурныя дужкі ў рэгулярных выразах Python
Аператары '+', '*', '?'
добрыя, аднак, з іх дапамогай нельга паказаць
канкрэтную колькасць паўтарэнняў. У гэтым выпадку
вам на дапамогу прыйдзе аператар {}.
Працуе ён наступным чынам: {5}
- пяць паўтарэнняў, {2,5} – паўтараецца
ад двух да пяці (абодва ўключна), {2,}
- паўтараецца два і больш разоў. Паглядзіце
прыклады:
Прыклад
У гэтым прыкладзе шаблон пошуку выглядае
так: літара 'x', літара 'a'
адзін або два разы, літара 'x':
txt = 'xx xax xaax xaaax'
res = re.sub('xa{1,2}x', '!', txt)
print(res)
Вынік выканання кода:
'xx ! ! xaaax'
Прыклад
У гэтым прыкладзе шаблон пошуку выглядае
так: літара 'x', літара 'a'
два разы і больш, літара 'x':
txt = 'xx xax xaax xaaax'
res = re.sub('xa{2,}x', '!', txt)
print(res)
Вынік выканання кода:
'xx xax ! !'
Прыклад
У гэтым прыкладзе шаблон пошуку выглядае
так: літара 'x', літара 'a'
тры разы, літара 'x':
txt = 'xx xax xaax xaaax'
res = re.sub('xa{3}x', '!', txt)
print(res)
Вынік выканання кода:
'xx xax xaax !'
Прыклад
У гэтым прыкладзе шаблон пошуку выглядае
так: літара 'a' дзесяць разоў:
txt = 'aaa aaaaaaaaaa aaa'
res = re.sub('a{10}', '!', txt)
print(res)
Вынік выканання кода:
'aaa ! aaa'
Прыклад
У гэтым прыкладзе ёсць такі шаблон: літара
'x', літара 'a' тры разы разы
і менш, літара 'x'. Для таго,
каб яго рэалізаваць, перад лічбай 3
можна не паказваць лік, а паставіць
проста коску:
txt = 'xx xax xaax xaaax'
res = re.sub('xa{,3}x', '!', txt)
print(res)
Вынік выканання кода:
'! ! ! !'
Прыклад
Нуль перад 3 таксама дапушчальны:
txt = 'xx xax xaax xaaax'
res = re.sub('xa{0,3}x', '!', txt)
print(res)
Вынік выканання кода:
'! ! ! !'
Практычныя задачы
Дадзены радок:
txt = 'aa aba abba abbba abbbba abbbbba'
Напішыце рэгулярку, якая знойдзе радкі
'abba', 'abbba', 'abbbba'
і толькі іх.
Дадзены радок:
txt = 'aa aba abba abbba abbbba abbbbba'
Напішыце рэгулярку, якая знойдзе радкі
віду 'aba', у якіх 'b'
сустракаецца менш за 3 разы (ўключна).
Дадзены радок:
txt = 'aa aba abba abbba abbbba abbbbba'
Напішыце рэгулярку, якая знойдзе радкі
віду 'aba', у якіх 'b'
сустракаецца больш за 4 разы (ўключна).