Dieser Artikel stellt hauptsächlich die Analyse des Greedy-Modus und des Non-Greedy-Modus für ein tieferes Verständnis der regulären JS-Ausdrücke vor. Jetzt kann ich ihn mit Ihnen teilen.
Ich habe bereits über reguläre Quantifizierer gesprochen, aber die Quantifizierer werden ein 到底该匹配哪个
Problem mit sich bringen.
Der folgende reguläre Ausdruck:
\d{3,6}
Dieser reguläre Ausdruck entspricht 3 bis 6 Zahlen, aber wenn dieser reguläre Ausdruck zum Abgleichen der Zeichenfolge 12345678
verwendet wird, mit welchen drei Ziffern sollte er übereinstimmen? sechsstellig oder keines von beiden?
Sie können es zuerst versuchen:
let text = '12345678' let reg = /\d{3,6}/g text.replace(reg, 'X') // X78
Sie können sehen, dass der reguläre Ausdruck die sechs Zahlen von 123456
durch X
ersetzt Der Ausdruck wird so viele Übereinstimmungen wie möglich haben.
Normalerweise übernehmen reguläre Ausdrücke den Greedy-Modus, das heißt, sie stimmen mit so vielen wie möglich überein.
Manchmal benötigen wir jedoch so wenige Übereinstimmungen wie möglich mit dem regulären Ausdruck, das heißt, sobald eine erfolgreiche Übereinstimmung erzielt wurde, werden keine weiteren Versuche unternommen der nicht gierige Modus. Wie gelangt man also in den Non-Greedy-Modus?
Die Methode ist sehr einfach, fügen Sie einfach ?
nach dem Quantor hinzu.
let text = '12345678' let reg = /\d{3,6}?/g text.replace(reg, 'X') // X45678
Es kann festgestellt werden, dass dieses reguläre Muster im nicht gierigen Modus nur mit 123
übereinstimmt, was die Mindestübereinstimmung darstellt.
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.
Verwandte Empfehlungen:
Umfassendes Verständnis der Analyse von Quantoren in regulären JS-Ausdrücken
Das obige ist der detaillierte Inhalt vonVerstehen Sie die Analyse des Greedy-Modus und des Non-Greedy-Modus von regulären JS-Ausdrücken genau. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!