preg_match_all()
Einführung
In PHP sind reguläre Ausdrücke unerlässlich für die Suche und Manipulation von Zeichenketten. Die preg_match_all()-Funktion durchsucht eine Zeichenkette nach allen Vorkommen eines Musters und gibt die Gesamtzahl der Treffer zurück. Dieser Artikel erklärt, wie Sie sie effektiv einsetzen können.
Verständnis der Funktion preg_match_all()
Die preg_match_all()-Funktion durchsucht eine Zeichenkette nach allen Vorkommen eines regulären Ausdrucks. Sie gibt die Anzahl der gefundenen Treffer zurück (oder false bei einem Fehler) und füllt das Array $matches. Die Syntax lautet:
preg_match_all($pattern, $subject, &$matches, $flags = 0, $offset = 0);$pattern: Das reguläre Ausdrucks-Muster.$subject: Die zu durchsuchende Zeichenkette.$matches: Ein Array, das mit den gefundenen Treffern gefüllt wird.$flags: Optional. Ändert das Suchverhalten. Häufige Flags sindPREG_PATTERN_ORDER(Standard, gruppiert Ergebnisse nach Muster) undPREG_SET_ORDER(gruppiert Ergebnisse nach Auftreten).PREG_OFFSET_CAPTUREfügt den Byte-Offset jedes Treffers hinzu.$offset: Optional. Gibt die Startposition in der Zeichenkette an.
Anwendungsbeispiel
Das folgende Beispiel zeigt Erfassungsgruppen und wie das $matches-Array strukturiert ist:
<?php
$pattern = '/([A-Z][a-z]+) (\d+)/';
$subject = 'Alice 25 Bob 30';
preg_match_all($pattern, $subject, $matches, PREG_SET_ORDER);
foreach ($matches as $match) {
echo "Name: {$match[1]}, Age: {$match[2]}\n";
}In diesem Beispiel verwendet das Muster Erfassungsgruppen (), um Namen und Alter zu extrahieren. Bei PREG_SET_ORDER ist $matches nach dem Auftreten des Treffers indiziert, sodass $match[0] den vollständigen Treffer enthält, $match[1] die erste Gruppe (Name) und $match[2] die zweite Gruppe (Alter). Ohne Erfassungsgruppen enthält $matches[0] alle vollständigen Treffer, und es werden keine zusätzlichen Gruppenindizes erstellt.
Fazit
Die preg_match_all()-Funktion ist unerlässlich, um alle Musterübereinstimmungen in PHP-Zeichenketten zu finden. Sie ermöglicht es Entwicklern, Daten effizient zu extrahieren und zu manipulieren. Dieser Überblick deckt die grundlegende Verwendung und die Array-Struktur ab. Für weitere Fragen konsultieren Sie die offizielle PHP-Dokumentation.
Praxis
Was ist der Zweck der Funktion preg_match_all() in PHP?