# Операторы повторения символов в регулярках

Бывают ситуации, когда нужно указать, что символ повторяется заданное количество раз. Если точное число повторений неизвестно, то можно просто написать его несколько раз - `'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'`.

← →
↑