Heim > Artikel > Web-Frontend > Tutorial zur JavaScript-Verbesserung – Backtracking regulärer Ausdrücke
Dieser Artikel ist das offizielle HTML5-Schulungs-Tutorial der H5EDU-Organisation. Er stellt hauptsächlich vor: JavaScript-Erweiterungs-Tutorial – Rückverfolgung regulärer Ausdrücke
Das folgende Beispiel zeigt den Prozess der Verarbeitung regulärer Ausdrücke:
/ h(ello|appy) hippo/.test("Hallo, glückliches Nilpferd");
Dieser reguläre Ausdruck ist „Hallo Nilpferd“ oder „Glückliches Nilpferd“. Wenn der Matching-Prozess beginnt, wird zunächst nach einem h gesucht , das Ziel Der erste Buchstabe der Zeichenfolge ist zufällig h, sodass er sofort gefunden wird. Als nächstes bietet der Unterausdruck (ello|appy) zwei Verarbeitungsoptionen. Der reguläre Ausdruck wählt die Option ganz links aus (die Auswahl erfolgt immer von links nach rechts) und prüft, ob ello mit dem nächsten Zeichen in der Zeichenfolge übereinstimmt erfolgreich, und der reguläre Ausdruck stimmt mit den nachfolgenden Leerzeichen überein. Da das h in hippo nicht mit dem t in der nächsten Zeichenfolge übereinstimmen kann, kann die Übereinstimmung nicht fortgesetzt werden. An diesem Punkt kann der reguläre Ausdruck nicht aufgeben, da er noch nicht alle Optionen ausgeschöpft hat. Anschließend wird er zum nächstgelegenen Entscheidungspunkt zurückverfolgt (entspricht der Position nach dem ersten Zeichen h) und versucht, den zweiten Zweig zu finden. Der Abgleich war nicht erfolgreich und es gibt keine weiteren Optionen. Daher geht der reguläre Ausdruck davon aus, dass der Abgleich mit dem ersten Zeichen der Zeichenfolge nicht erfolgreich sein kann, und versucht es daher erneut mit dem zweiten Zeichen. Er fand h nicht, also suchte er weiter, bis das h in „happy“ an der Position der 14. Zeichenfolge übereinstimmte, und trat dann erneut in den Verzweigungsprozess ein. Dieses Mal gelang es ihm nicht, ello zu finden, aber er machte einen Rückzieher und versuchte es Im zweiten Verzweigungsprozess wurde schließlich die gesamte Zeichenfolge „Happy Hippo“ abgeglichen.
Matching erfolgreich.