Greedy-Matching: Reguläre Ausdrücke neigen im Allgemeinen dazu, eine Übereinstimmung mit der maximalen Länge herzustellen, was das sogenannte Greedy-Matching ist.
Nicht gieriger Abgleich: Vergleichen Sie das Ergebnis einfach mit so wenigen übereinstimmenden Zeichen wie möglich.
Also, lass es uns in die Praxis umsetzen
Verwenden Sie die Anzahl der Zeilen in PHP preg_match_all
Im Folgenden müssen wir die beiden Links herausnehmen der String-Inhalt
PHP-Code
1. $content='
Das ist offensichtlich nicht das, was wir wollen.
Solange wir dann einen weiteren Buchstaben zu $play_pattern hinzufügen, können wir die benötigten Informationen
PHP-Code
1 $ zuordnen play_pattern = '/
Das Ergebnis ist
Array
([0] => Array
( [0 ] => BD
[1] => DVD
)
[1] => /videos / 68759vod-play-id-68759-sid-0-pid-1.html
[1] => /videos/68759vod-play-id-68759-sid-0-pid-0.html
)
[2] => Array
(
[0] => BD
[1] => DVD
)
)
Der Unterschied zwischen dem Greedy-Modus und dem Non-Greedy-Modus ist so groß.
Ein solcher Fehler tritt häufig bei der Regularisierung von Listen in HTML auf. Die Verwendung von preg_match_all gleicht die gesamte Zeichenfolge ab, die Teilzeichenfolgenübereinstimmung wird jedoch ignoriert. was zu falschen Ergebnissen führt.