Signatur
Beschreibung
mb_ereg_search_getregs() liefert das Ergebnis des zuletzt durchgeführten Multibyte-Regex-Suchvorgangs (via mb_ereg_search(), mb_ereg_search_pos() oder mb_ereg_search_regs()) als Array. Das Array enthält an Index 0 den vollständigen Treffer sowie an den folgenden Indizes die einzelnen Capture-Gruppen des regulären Ausdrucks.
Diese Funktion ist Teil der Multibyte-Regex-Suchfamilie, die für die Arbeit mit Zeichenketten in Mehrbyte-Kodierungen wie UTF-8 oder EUC-JP ausgelegt ist. Im Gegensatz zur einmaligen Suche ermöglicht die Suchfamilie die schrittweise Iteration durch einen Text, ähnlich wie ein Cursor.
Typischerweise wird zunächst mit mb_ereg_search_init() der Suchstring und das Muster initialisiert, dann mit mb_ereg_search() ein Treffer gefunden, und anschließend können die Treffer-Details mit mb_ereg_search_getregs() abgerufen werden – ohne erneuten Regex-Aufruf.
Wurde noch kein Suchvorgang durchgeführt oder ist keine Mehrbyte-Suche aktiv, gibt die Funktion false zurück.
Rückgabewert
Gibt ein Array zurück, dessen erstes Element (Index 0) den gesamten Treffer-String enthält, gefolgt von den Inhalten der Capture-Gruppen (Index 1, 2, …). Gibt false zurück, wenn kein Treffer vorhanden ist oder kein Suchvorgang vorausging.
Beispiele
Capture-Gruppen nach mb_ereg_search() auslesen
<?php
mb_internal_encoding('UTF-8');
$string = 'Name: Müller, Vorname: Hans';
$pattern = 'Name: (\\w+), Vorname: (\\w+)';
mb_ereg_search_init($string, $pattern);
if (mb_ereg_search()) {
$regs = mb_ereg_search_getregs();
echo 'Vollständiger Treffer: ' . $regs[0] . PHP_EOL;
echo 'Nachname: ' . $regs[1] . PHP_EOL;
echo 'Vorname: ' . $regs[2] . PHP_EOL;
} else {
echo 'Kein Treffer gefunden.';
}
Iterative Suche mit mehreren Treffern
<?php
mb_internal_encoding('UTF-8');
$string = 'Apfel Birne Kirsche';
$pattern = '(\\w+)';
mb_ereg_search_init($string, $pattern);
while (mb_ereg_search()) {
$regs = mb_ereg_search_getregs();
echo 'Treffer: ' . $regs[0] . PHP_EOL;
}
// Wichtig · Fallstricke
Hinweis zur Kodierung: Vor der Verwendung sollte die interne Kodierung mit mb_internal_encoding() korrekt gesetzt sein, damit Mehrbyte-Zeichen (z. B. Umlaute, CJK-Zeichen) zuverlässig verarbeitet werden.
Abhängigkeit vom Zustand: Die Funktion ist zustandsabhängig – sie liefert ausschließlich die Ergebnisse des letzten Suchvorgangs. Parallele oder verschachtelte Suchen können zu unerwarteten Ergebnissen führen, da der interne Cursor global gespeichert wird.
Deprecation: Die gesamte mb_ereg_*-Familie basiert auf der ONIG-Bibliothek und verhält sich teils anders als PCRE (preg_*). Für neue Projekte werden die preg_*-Funktionen mit dem u-Modifikator für Unicode empfohlen.