Grupperende parenteser i regex i PHP
I de foregående eksemplene virket repetisjonsoperatørene kun på ett tegn som stod foran dem. Hva gjør vi hvis vi vil la dem virke på flere tegn?
For dette finnes det grupperende parenteser
'(' og ')'. De fungerer slik:
hvis noe står i grupperende parenteser
og rett etter ')' står en repetisjonsoperator
- vil den virke på alt som står inne i parentesene.
I det følgende eksemplet ser søkemønsteret
slik ut: bokstaven 'x', deretter strengen 'ab'
en eller flere ganger, deretter bokstaven 'x':
<?php
$str = 'xabx xababx xaabbx';
$res = preg_replace('#x(ab)+x#', '!', $str);
?>
Som et resultat vil følgende bli skrevet til variabelen:
'! ! xaabbx'
Gitt en streng:
<?php
$str = 'ab abab abab abababab abea';
?>
Skriv et regulært uttrykk som finner strenger
etter mønsteret: strengen 'ab' gjentas
1 eller flere ganger.