Gruppierende Klammern in PHP-Regex
In vorherigen Beispielen wirkten Wiederholungsoperatoren nur auf ein Zeichen, das vor ihnen stand. Was tun, wenn wir möchten, dass sie auf mehrere Zeichen wirken?
Dafür gibt es gruppierende Klammern
'(' und ')'. Sie funktionieren so:
wenn etwas in gruppierenden Klammern steht
und direkt nach ')' ein Wiederholungsoperator
steht - wirkt er auf alles, was innerhalb der Klammern steht.
Im folgenden Beispiel sieht das Suchmuster
so aus: Buchstabe 'x', dann Zeichenkette 'ab'
einmal oder mehrmals, dann Buchstabe 'x':
<?php
$str = 'xabx xababx xaabbx';
$res = preg_replace('#x(ab)+x#', '!', $str);
?>
Als Ergebnis wird in die Variable folgendes geschrieben:
'! ! xaabbx'
Gegeben sei der String:
<?php
$str = 'ab abab abab abababab abea';
?>
Schreiben Sie einen regulären Ausdruck, der Strings
nach dem Muster findet: String 'ab' wiederholt sich
1 oder mehrmals.