Mittels Backreferences kann man auf durch Unterausdrücke definierte Teile des Suchmusters zugreifen, um sie entweder in der PHP-Funktion preg_replace als Ersatz weiter zu verwenden oder sie ins Suchmuster einzubauen.
Außerdem besteht bei den PHP-Funktionen preg_match bzw. preg_match_all die Möglichkeit, sich die gefundenen Unterausdrücke als Array-Elemente zurückgeben zu lassen. So lassen sich sehr schnell große Mengen an Informationen aus einem Text extrahieren.
Einmal definert, kann der gewünschte Unterausdruck referenziert werden,
indem er mittels einem - bei Kapselung des Strings in einfache Anführungszeichen ' -
oder zwei - bei Kapselung des Strings in doppelt Anführungszeichen " -
Backslash, gefolgt von seiner Nummer, eingebunden wird.
Man kann auch der jeweiligen Nummer ein Dollarzeichen $ voranstellen, um das
selbe zu erreichen.
Die Nummerierung ergibt sich aus der Position des zugehörigen Unterausdrucks im Suchmuster. Die Unterausdrücke werden von links nach rechts, bei 1 beginnend, durchnummeriert, wobei jeweils bei der öffnende Klammer gezählt wird.
Die vier in diesem Beispiel
#(.*)-(.*)-(.*)-(.*)#
erzeugten Unterausdrücke lassen sich per \1,
\2, \3 und
\4 ansprechen.
Im folgenden Beispiel wird der Name eines HTML-Tags ausgelesen,
in diesem Falle <span> oder <div>,
und im schließenden Tag als Backreference wiederverwendet, um so die korrekte
Verschachtelung der HTML-Elemente zu überprüfen.
#<(span|div)>.*</\1>#
Der Reguläre Ausdruck trifft somit auf
<div>Inhalt</div> bzw.
<span>Inhalt</span> zu, aber nicht auf
<div>Inhalt</span> oder
<span>Inhalt</div>.
Verwandte Themen
Kapitelnavigation
- Letzte Änderung: 08.01.2012, 12:31:18
- © 2003 - 2012 nophia web