Группирующие скобки в регулярках PHP

В предыдущих примерах операторы повторения действовали только на один символ, который стоял перед ними. Что делать, если мы хотим подействовать им на несколько символов?

Для этого существуют группирующие скобки '(' и ')'. Они работают так: если что-то стоит в группирующих скобках и сразу после ')' стоит оператор повторения - он подействует на все, что стоит внутри скобок.

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

Пример

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

<?php $str = 'xabx xababx xaabbx'; $res = preg_replace('#x(ab)+x#', '!', $str); ?>

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

'! ! xaabbx'

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

Дана строка:

<?php $str = 'ab abab abab abababab abea'; ?>

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