Was bedeutet die g
Flagge in regulären Ausdrücken?
Was ist der Unterschied zwischen /.+/g
und /.+/
?
javascript
regex
Intelis
quelle
quelle
var r = /a/g; console.log(r.test('a'), r.test('a')); // true false
Beispiel in Javascript zur Erklärung:
quelle
g
ist das globale Suchflag.Das globale Suchflag führt die RegExp-Suche nach einem Muster in der gesamten Zeichenfolge durch und erstellt ein Array aller Vorkommen, die mit dem angegebenen Muster übereinstimmen.
Der Unterschied zwischen
/.+/g
und/.+/
besteht darin, dass dieg
Version jedes Vorkommen findet und nicht nur das erste.quelle
Es gibt keinen Unterschied zwischen
/.+/g
und,/.+/
da beide nur einmal mit der gesamten Zeichenfolge übereinstimmen. Diesg
macht einen Unterschied, ob der reguläre Ausdruck mehr als einmal übereinstimmen könnte oder Gruppen enthält. In diesem Fall.match()
wird ein Array der Übereinstimmungen anstelle eines Arrays der Gruppen zurückgegeben.quelle
Wie @matiska hervorhob, setzt das
g
Flag daslastIndex
Eigenschaft.Ein sehr wichtiger Nebeneffekt davon ist, dass wenn Sie dieselbe Regex-Instanz für eine übereinstimmende Zeichenfolge wiederverwenden, diese möglicherweise fehlschlägt, da sie erst bei der Suche beginnt
lastIndex
.quelle
Neben der bereits erwähnten Bedeutung der
g
Flagge beeinflusst sie dasregexp.lastIndex
Eigentum:Referenz: Mozilla Developer Network
quelle
G in regulären Ausdrücken definiert eine globale Suche, dh, es wird nach allen Instanzen in allen Zeilen gesucht.
quelle
Gibt ein Beispiel basierend auf einer Zeichenfolge. Wenn wir alle Vorkommen aus einer Zeichenfolge entfernen möchten. Sagen wir, wenn wir alle Vorkommen von "o" mit "" aus "Hallo Welt" entfernen wollen.
quelle
g
->
gibt alle Übereinstimmungen zurückwithout g
->
Gibt die erste Übereinstimmung zurückBeispiel:
'1 2 1 5 6 7'.match(/\d+/)
kehrt zurück["1", index: 0, input: "1 2 1 5 6 7", groups: undefined]
. Wie Sie sehen, können wir nur das erste Spiel bestreiten"1"
.'1 2 1 5 6 7'.match(/\d+/g)
Gibt ein Array aller Übereinstimmungen zurück["1", "2", "1", "5", "6", "7"]
.quelle