Grupperande parenteser i PHP regex
I tidigare exempel verkade repetitionsoperatorerna bara på ett tecken som stod före dem. Vad ska vi göra om vi vill att de ska verka på flera tecken?
För detta finns grupperande parenteser
'(' och ')'. De fungerar så här:
om något står inom grupperande parenteser
och direkt efter ')' står en repetitionsoperator
- kommer den att verka på allt som står inom parenteserna.
I nästa exempel ser sökmönstret ut
så här: bokstaven 'x', följt av strängen 'ab'
en eller flera gånger, sedan bokstaven 'x':
<?php
$str = 'xabx xababx xaabbx';
$res = preg_replace('#x(ab)+x#', '!', $str);
?>
Som ett resultat kommer följande att skrivas till variabeln:
'! ! xaabbx'
Given en sträng:
<?php
$str = 'ab abab abab abababab abea';
?>
Skriv ett reguljärt uttryck som hittar strängar
enligt mönstret: strängen 'ab' upprepas
1 eller fler gånger.