Paranteze de grupare în expresiile regulate PHP
În exemplele precedente, operatorii de repetare acționau doar asupra unui singur caracter care se afla înaintea lor. Ce facem dacă vrem să-i facem să acționeze asupra mai multor caractere?
Pentru asta există parantezele de grupare
'(' și ')'. Ele funcționează astfel:
dacă ceva se află între parantezele de grupare
și imediat după ')' se află un operator de repetare
- acesta va acționa asupra a tot ce se află în interiorul parantezelor.
În următorul exemplu, șablonul de căutare arată
așa: litera 'x', apoi șirul 'ab'
de unul sau mai multe ori, apoi litera 'x':
<?php
$str = 'xabx xababx xaabbx';
$res = preg_replace('#x(ab)+x#', '!', $str);
?>
Ca rezultat, în variabilă se va scrie următoarele:
'! ! xaabbx'
Este dat șirul:
<?php
$str = 'ab abab abab abababab abea';
?>
Scrieți o expresie regulată care va găsi șirurile
după șablonul: șirul 'ab' se repetă
de 1 sau de mai multe ori.