16.4 Zwischen gierigem und nicht-gierigem Matching wählen
Problem
Sie möchten mit Ihrem Muster die kleinstmögliche Übereinstimmung finden und nicht die größtmögliche.
Lösung
Fügen Sie ein ?
nach einem Quantifikator ein, um diesen Teil des Musters zu modifizieren:
// Alle fett geschriebenen Abschnitte finden. preg_match_all('#<b>.+?</b>#', $html, $matches);
Oder verwenden Sie den Muster-Modifikator U
, um alle Quantifikatoren von gierig auf nicht-gierig umzuschalten:
// Alle fett geschriebenen Abschnitte finden. preg_match_all('#<b>.+</b>#U', $html, $matches);
Diskussion
Standardmäßig entspricht das Verhalten von regulären Ausdrücken in PHP dem, was man als gierig (greedy) bezeichnet. Dies bedeutet, dass ein Quantifikator stets versucht, eine Übereinstimmung ...
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.