Zum Inhalt springen

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:

php
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 sind PREG_PATTERN_ORDER (Standard, gruppiert Ergebnisse nach Muster) und PREG_SET_ORDER (gruppiert Ergebnisse nach Auftreten). PREG_OFFSET_CAPTURE fü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
<?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?

Finden Sie das nützlich?

Dual-run-Vorschau — vergleichen Sie mit den Symfony-Routen live.