Оператори понављања симбола у регуларним изразима
Дешавају се ситуације када треба навести да се
симбол понавља задати број
пута. Ако тачан број понављања није познат,
можемо га једноставно написати више пута
- 'aaaa'. Али шта да радимо, ако треба
рећи овако: поновити један или више
пута?
За то постоје оператори (квантификатори)
понављања: плус + (један или више
пута), звездица * (нула или више
пута) и упитник ? (нула или једанпут).
Ови оператори делују на онај симбол,
који стоји испред њих.
Хајде да погледамо рад ових оператора на примерима.
Пример
Пронађимо све поднизове по шаблону слово
'x', слово 'a' један или више
пута, слово 'x':
txt = 'xx xax xaax xaaax xbx'
res = re.sub('xa+x', '!', txt)
print(res)
Резултат извршавања кода:
'xx ! ! ! xbx'
Пример
Пронађимо све поднизове по шаблону слово
'x', слово 'a' нула или више
пута, слово 'x':
txt = 'xx xax xaax xaaax xbx'
res = re.sub('xa*x', '!', txt)
print(res)
Резултат извршавања кода:
'! ! ! ! xbx'
Пример
Пронађимо све поднизове по шаблону слово
'x', слово 'a' нула или једанпут,
слово 'x':
txt = 'xx xax xaax xbx'
res = re.sub('xa?x', '!', txt)
print(res)
Резултат извршавања кода:
'! ! xaax xbx'
Практични задаци
Дат је низ:
txt = 'aa aba abba abbba abca abea'
Напишите регуларни израз, који ће пронаћи низове
'aba', 'abba', 'abbba'
по шаблону: слово 'a', слово
'b' било колико пута, слово
'a'.
Дат је низ:
txt = 'aa aba abba abbba abca abea'
Напишите регуларни израз, који ће пронаћи низове
'aa', 'aba', 'abba',
'abbba' по шаблону: слово
'a', слово 'b' било колико пута
(укључујући ни једном), слово
'a'.
Дат је низ:
txt = 'aa aba abba abbba abca abea'
Напишите регуларни израз, који ће пронаћи низове
'aa', 'aba' по шаблону:
слово 'a', слово 'b' једанпут
или ни једном, слово 'a'.
Дат је низ:
txt = 'aa aba abba abbba abca abea'
Напишите регуларни израз, који ће пронаћи низове
'aa', 'aba', 'abba',
'abbba', не ухвативши 'abca'
и 'abea'.