Lassen Sie uns zunächst verstehen, was von regulären Ausdrücken gierig ist und was nicht gierig ist. Oder was ist ein Matching-Prioritätsquantifizierer und was ist ein Ignorieren des Prioritätsquantifizierers?
Okay, ich weiß nicht, was das Konzept ist.
Ein Student wollte die Inhalte zwischen ihnen filtern. So schrieb er die regulären Regeln und Verfahren.
$str = preg_replace('%<script>.+?</script>%i','',$str);//非贪婪
Es scheint, dass nichts falsch ist, aber tatsächlich ist es nicht so. Wenn
$str = '<script<script>alert(document.cookie)</script>>alert(document.cookie)</script>';
, dann ist das Ergebnis nach dem obigen Verfahren
$str = '<script<script>alert(document.cookie)</script>>alert(document.cookie)</script>'; $str = preg_replace('%<script>.+?</script>%i','',$str);//非贪婪 print_r($str); //$str 输出为 <script>alert(document.cookie)</script>
Immer noch nicht in der Lage, den gewünschten Effekt zu erzielen. Das Obige ist Nicht-Gier, und manche werden Faulheit genannt. Das Zeichen für Nicht-Gier besteht darin, ? nach dem quantitativen Metazeichen hinzuzufügen, wie z. B. +?, *?, ?? (spezieller, ich werde darüber in einem zukünftigen BLOG schreiben) usw. Das heißt, es bedeutet nicht gierig. Wenn Sie nicht schreiben?, bedeutet es gierig. Zum Beispiel:
$str = '<script<script>alert(document.cookie)</script>>alert(document.cookie)</script>'; $str = preg_replace('%<script>.+</script>%i','',$str);//非贪婪 print_r($str); //$str 输出为Neueste Artikel des Autors
1970-01-01 08:00:00 1970-01-01 08:00:00 1970-01-01 08:00:00 1970-01-01 08:00:00 1970-01-01 08:00:00 1970-01-01 08:00:00 1970-01-01 08:00:00 1970-01-01 08:00:00 1970-01-01 08:00:00 1970-01-01 08:00:00Aktuelle Ausgabenjavascript - Wie erhalte ich den Inhalt in Klammern mithilfe regulärer Ausdrücke in JS?Aus 1970-01-01 08:00:00000javascript – Eine Zeile Code für den Quellcode von underscore.js schreibenAus 1970-01-01 08:00:00000javascript - Woher wissen Sie, dass der Haken des Versprechens nicht geschrieben ist?Aus 1970-01-01 08:00:00000verwandte ThemenMehr>
- Was bedeutet „Hinzufügen' in Java?
- So beheben Sie den 504-Fehler im CDN
- Ouyi-Handelsplattform-App
- So öffnen Sie eine JSP-Datei
- So beheben Sie den Fehler aufgrund einer ungültigen MySQL-ID
- Drei Auslösemethoden für SQL-Trigger
- Kostenlose Datenwiederherstellungssoftware
- Einführung in das Dex-Konzept der digitalen Währung