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

Бывают ситуации, когда мы хотим указать, что символ повторяется заданное количество раз. Если мы знаем точное число повторений, то можно просто написать его несколько раз - `#aaaa#`. Но что делать, если мы хотим сказать такое: повторить один или более раз?

Для этого существуют операторы (квантификаторы) повторения: плюс `+` (один и более раз), звездочка `*` (ноль или более раз) и вопрос `?` (ноль или один раз). Эти операторы действуют на тот символ, который стоит перед ними.

Давайте посмотрим на работу этих операторов на примерах.

## Пример

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

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

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

`'xx ! ! ! xbx'`

## Пример

Найдем все подстроки по шаблону буква `'x'`, буква `'a'` ноль или более раз, буква `'x'`:

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

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

`'! ! ! ! xbx'`

## Пример

Найдем все подстроки по шаблону буква `'x'`, буква `'a'` ноль или один раз, буква `'x'`:

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

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

`'! ! xaax xbx'`

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

Дана строка:

`<?php $str = 'aa aba abba abbba abca abea'; ?>`

Напишите регулярку, которая найдет строки по шаблону: буква `'a'`, буква `'b'` один или более раз, буква `'a'`.

Дана строка:

`<?php $str = 'aa aba abba abbba abca abea'; ?>`

Напишите регулярку, которая найдет строки по шаблону: буква `'a'`, буква `'b'` ноль или более раз, буква `'a'`.

Дана строка:

`<?php $str = 'aa aba abba abbba abca abea'; ?>`

Напишите регулярку, которая найдет строки по шаблону: буква `'a'`, буква `'b'` один раз или ниодного, буква `'a'`.

Дана строка:

`<?php $str = 'aa aba abba abbba abca abea'; ?>`

Напишите регулярку, которая найдет строки `'aa'`, `'aba'`, `'abba'`, `'abbba'`, не захватив `'abca'` и `'abea'`.

←→
↑