16.3 Den n-ten Match finden

Problem

Sie möchten die n-te Wortübereinstimmung finden und nicht die erste.

Lösung

Mit preg_match_all() übernehmen Sie alle Übereinstimmungen in ein Array. Dann filtern Sie diejenigen Übereinstimmungen heraus, an denen Sie interessiert sind:

preg_match_all ("/$muster/$modifikatoren", $string, $matches)

foreach($matches[1] as $match) {
    print "$match\n";
}

Diskussion

Anders als in Perl unterstützen die Perl-kompatiblen regulären Ausdrücke in PHP nicht den Modifikator /g, mit dem Sie in einem String eine Übereinstimmung nach der anderen suchen können. Sie müssen preg_match_all() anstelle von preg_match() verwenden.

Die Funktion preg_match_all() gibt ein zweidimensionales Array zurück. Das erste Element enthält ein Array mit ...

Get PHP 5 Kochbuch, Third Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.