PHP regulýar ifadelerinde toparlaýjy ýaýlarlar

Öňki mysallarda gaýtalanma operatorlary diňe öňlerinde duran bir nyşana täsir etdi. Eger-de olary birnäçe nyşana täsir etdirmek isleýän bolsak, näme etmeli?

Bunun üçin toparlaýjy ýaýlar '(' we ')' bar. Olar şeýle işleýär: eger bir zat toparlaýjy ýaýlaryň içinde durýan bolsa we ')' nyşanynyň derrew yzysüre gaýtalanma operator durýan bolsa - ol ýaýlaryň içindäki hemme zada täsir eder.

Aşakdaky mysalda gözleg şablony şeýle görünýär: 'x' harp, soňra 'ab' setiri bir ýa-da birnäçe gezek, soň bolsa 'x' harpy:

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

Netijede üýtgeýjäniň içine aşakdaky ýazylar:

php'! ! xaabbx'
Задание 1

Setir berlen:

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

'ab' setiriniň 1 ýa-da birnäçe gezek gaýtalanýandygy şablonyna laýyk gelýän setirleri tapýan regulýar ifadäni ýazyň.