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.