# Фигурные скобки в регулярных выражениях 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`-х раз (включительно).

← →
↑