Оператори за повторување на знаци
Постојат ситуации кога треба да се означи дека
знакот се повторува даден број пати.
Ако точниот број на повторувања не е познат,
тогаш може едноставно да се напише неколку пати
- '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'.