# Фигурные скобки в регулярных выражения PHP

Операторы `+`, `*`, `?` хороши, однако, с их помощью нельзя указать конкретное число повторений. В этом случае вам на помощь придет оператор `{}`.

Работает он следующим образом: `{5}` - пять повторений, `{2,5}` - повторяется от двух до пяти (оба включительно), `{2,}` - повторяется два и более раз.

## Пример

В данном примере шаблон поиска выглядит так: буква `'x'`, буква `'a'` один или два раза, буква `'x'`:

`<?php $str = 'xx xax xaax xaaax'; $res = preg_replace('#xa{1,2}x#', '!', $str); ?>`

В результате в переменную запишется следующее:

`'xx ! ! xaaax'`

## Пример

В данном примере шаблон поиска выглядит так: буква `'x'`, буква `'a'` два раза и более, буква `'x'`:

`<?php $str = 'xx xax xaax xaaax'; $res = preg_replace('#xa{2,}x#', '!', $str); ?>`

В результате в переменную запишется следующее:

`'xx xax ! !'`

## Пример

В данном примере шаблон поиска выглядит так: буква `'x'`, буква `'a'` три раза, буква `'x'`:

`<?php $str = 'xx xax xaax xaaax'; $res = preg_replace('#xa{3}x#', '!', $str); ?>`

В результате в переменную запишется следующее:

`'xx xax xaax !'`

## Пример

В данном примере шаблон поиска выглядит так: буква `'a'` десять раз:

`<?php $str = 'aaa aaaaaaaaaa aaa'; $res = preg_replace('#a{10}#', '!', $str); ?>`

В результате в переменную запишется следующее:

`'aaa ! aaa'`

## Пример

В данном примере автор кода хотел такой шаблон: буква `'x'`, буква `'a'` три раза раза и меньше, буква `'x'`, но, к сожалению, такое - `{,3}` - не работает. Нужно указать явно:

`<?php $str = 'xx xax xaax xaaax'; $res = preg_replace('#xa{1,3}x#', '!', $str); ?>`

В результате в переменную запишется следующее:

`'xx ! ! !'`

## Пример

Ноль тоже допустим:

`<?php $str = 'xx xax xaax xaaax'; $res = preg_replace('#xa{0,3}x#', '!', $str); ?>`

В результате в переменную запишется следующее:

`'! ! ! !'`

## Практические задачи

Дана строка:

`<?php $str = 'aa aba abba abbba abbbba abbbbba'; ?>`

Напишите регулярку, которая найдет строки `'abba'`, `'abbba'`, `'abbbba'` и только их.

Дана строка:

`<?php $str = 'aa aba abba abbba abbbba abbbbba'; ?>`

Напишите регулярку, которая найдет строки вида `'aba'`, в которых `'b'` встречается менее трех раз (включительно).

Дана строка:

`<?php $str = 'aa aba abba abbba abbbba abbbbba'; ?>`

Напишите регулярку, которая найдет строки вида `'aba'`, в которых `'b'` встречается более четырех раз (включительно).

← →
↑