English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Die Funktion preg_match_all wird verwendet, um eine globale reguläre Ausdrucksübereinstimmung durchzuführen.
int preg_match_all ( string $pattern , string $subject [, array &$matches [, int $flags = PREG_PATTERN_ORDER [, int $offset = 0 ]]] )
Durchsuchen Sie alle Übereinstimmungen von subject, die durch das angegebene reguläre Muster pattern übereinstimmen, und geben Sie sie in die matches in der durch flag angegebenen Reihenfolge aus.
Nachdem die erste Übereinstimmung gefunden wurde, beginnt die Sequenz der Suche von der Position der letzten Übereinstimmung fort.
Parameterbeschreibung:
$pattern: Zu suchendes Muster, Zeichenfolgestil.
$subject: Eingabezeichenfolge.
$matches: Mehrdimensionales Array, das alle Übereinstimmungsergebnisse als Ausgabeparameter ausgibt, die Reihenfolge des Arrays wird durch flags angegeben.
$flags: Können mit den folgenden Markern kombiniert werden (Beachten Sie, dass PREG_PATTERN_ORDER und PREG_SET_ORDER nicht gleichzeitig verwendet werden können):
PREG_PATTERN_ORDER: Die Ergebnisse werden sortiert, wobei $matches[0] alle Übereinstimmungen speichert, die die gesamte Suchmuster enthalten, $matches[1] alle Übereinstimmungen der ersten Untergruppe speichert und so weiter.
PREG_SET_ORDER: Die Ergebnisse werden sortiert, wobei $matches[0] alle Übereinstimmungen enthält, die das erste Mal übereinstimmen (einschließlich der Untergruppen), $matches[1ist ein Array, das alle Übereinstimmungen (einschließlich der Untergruppen) enthält, die das zweite Mal übereinstimmen, und so weiter.
PREG_OFFSET_CAPTURE: Wenn dieser Parameter übergeben wird, wird bei jedem zurückgegebenen Treffer der relative Offset zum Zielstring erhöht.
offset: Normalerweise beginnt die Suche am Anfang des Zielstrings. Der optionale Parameter offset gibt an, ab welchem Ort im Zielstring die Suche beginnen soll (Einheiten sind Bytes).
Gibt die Anzahl der vollständigen Übereinstimmungen zurück (kann 0 sein), oder FALSE, wenn ein Fehler auftritt.
<?php
$userinfo = "Name: <b>PHP</b> <br> Titel: <b>Programmiersprache</b>";
preg_match_all ("/<b>(.*)<\/b>/U", $userinfo, $pat_array);
print_r($pat_array[0]);
?>
Das Ergebnis ist wie folgt dargestellt:
Array ( [0] => <b>PHP</b> [1] => <b>Programmiersprache</b> )
<?php
//\\2Dies ist ein Beispiel für eine Rückverweisung. Dies sagt pcre, dass es die zweite Klammer im regulären Ausdruck (hier ([\w+))
//Gematchte Ergebnisse. Hier werden zwei Backslashes verwendet, da hier doppelte Anführungszeichen verwendet werden.
$html = "<b>fett gedruckter Text</b><a href=howdy.html>klicken Sie hier</a>";
preg_match_all("/(<([\w+)[^>]*>)(.*?)(<\/\\2>)/", $html, $matches, PREG_SET_ORDER);
foreach ($matches as $val) {
echo "gematchet: " . $val[0] . "\n";
echo "part 1: " . $val[1] . "\n";
echo "part 2: " . $val[2] . "\n";
echo "part 3: " . $val[3] . "\n";
echo "part 4: " . $val[4]; "\n\n";
}
?>
Das Ergebnis ist wie folgt dargestellt:
gematchet: <b>fett gedruckter Text</b> part 1: <b> part 2: b part 3: fett gedruckter Text part 4: </b> gematchet: <a href=howdy.html>klicken Sie hier</a> part 1: <a href=howdy.html> part 2: a part 3: klicken Sie hier part 4: </a>