Durchsucht Zeichenkette
nach Übereinstimmungen mit
dem in Suchmuster
angegebenen regulären Ausdruck.
Falls der Parameter Treffer
angegeben wurde, wird
er mit den Suchergebnissen gefüllt. $treffer[0]
enthält dann den Text, der mit dem kompletten Suchmuster übereinstimmt,
$treffer[1]
den Text, der mit dem ersten
eingeklammerten Teil-Suchmuster übereinstimmt und so weiter.
Flags
kann das folgende Flag sein:
Wenn dieses Flag gesetzt ist, wird mit jeder gefundenen Übereinstimmung der dazugehörige Versatz in der Zeichenkette zurückgegeben. Beachten Sie, dass dies die Rückgabewerte in einem Array dahingehend ändert, dass jedes Element ein Array ist, das aus der übereinstimmenden Zeichenkette als Element 0 und deren Stelle in der durchsuchten Zeichenkette als Element 1 besteht. Dieses Flag steht seit PHP 4.3.0 zur Verfügung.
Flags
steht seit PHP 4.3.0. zur
Verfügung.
Normalerweise beginnt die Suche am Anfang der Zeichenkette. Der optionale
Parameter Versatz
kann verwendet werden, um eine
andere Stelle anzugeben, ab der gesucht werden soll. Der Parameter
Versatz
steht seit PHP 4.3.3 zur Verfügung.
Anmerkung: Die Verwendung von
Versatz
entspricht nicht der Übergabe von substr($zeichenkette, $versatz) an Stelle der Zeichenkette an preg_match(), weilSuchmuster
Angaben wie zum Beispiel ^, $ oder (?<=x) enthalten kann. Vergleiche:
<?php
$zeichenkette = "abcdef";
$suchmuster = '/^def/';
preg_match($suchmuster, $zeichenkette, $treffer, PREG_OFFSET_CAPTURE, 3);
print_r($treffer);
?>Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
Array ( )während dieses Beispiel
<?php
$zeichenkette = "abcdef";
$suchmuster = '/^def/';
preg_match($suchmuster, substr($zeichenkette,3), $treffer, PREG_OFFSET_CAPTURE);
print_r($treffer);
?>folgende Ausgabe erzeugt
Array ( [0] => Array ( [0] => def [1] => 0 ) )
preg_match() gibt die Anzahl der Übereinstimmungen mit
Suchmuster
zurück. Das ist entweder 0 (keine
Übereinstimmung) oder 1, weil preg_match() die Suche
nach der ersten Übereinstimmung beendet. Im Gegensatz dazu setzt
preg_match_all() die Suche bis zum Ende von
Zeichenkette
fort. preg_match()
gibt FALSE zurück, falls ein Fehler auftrat.
Tipp: Verwenden Sie nicht preg_match(), wenn Sie nur überprüfen wollen, ob eine Zeichenkette in einer anderen Zeichenkette enthalten ist. Verwenden Sie dafür stattdessen die Funktionen strpos() oder strstr(), die das schneller erledigen.
Beispiel 2. Die Zeichenkette "web" finden
|
Beispiel 3. Den Domänen-Namen aus einer URL holen
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
|
Siehe auch preg_match_all(), preg_replace() und preg_split().
Zurück | Zum Anfang | Weiter |
preg_match_all | Nach oben | preg_quote |