Zugriff auf übereinstimmende Gruppen in regulären JavaScript-Ausdrücken
Beim Abgleichen einer Zeichenfolge mit einem regulären Ausdruck ist es wichtig zu verstehen, wie die erfassten Untergruppen abgerufen werden . In JavaScript wird dies durch die Erfassung von Gruppen innerhalb des regulären Ausdrucks erreicht.
Betrachten Sie das folgende Beispiel:
var myString = "something format_abc"; // Target substring: "abc" var arr = /(?:^|\s)format_(.*?)(?:\s|$)/.exec(myString); console.log(arr); // [" format_abc", "abc"] console.log(arr[1]); // undefined console.log(arr[0]); // format_undefined
Grund für undefinierte Ausgabe:
Während der reguläre Ausdruck korrekt mit der Teilzeichenfolge „abc“ übereinstimmt, wird beim Zugriff auf arr[1] aufgrund einer falschen Ausgabe in den console.log-Anweisungen undefiniert zurückgegeben. console.log interpretiert die Zeichenfolge %A als Formatierungsplatzhalter und versucht, sie durch den zweiten Parameter zu ersetzen, der in diesem Fall undefiniert ist.
Zugriff auf übereinstimmende Gruppen:
Um die übereinstimmende Gruppe zu extrahieren, verwenden Sie arr[1]. Dadurch wird korrekt „abc“ zurückgegeben.
Iterieren über mehrere Übereinstimmungen (ES2020):
JavaScript 2020 hat die Methode matchAll eingeführt, die einen Iterator liefert, der verwendet werden kann Alle Übereinstimmungen in einer Zeichenfolge durchlaufen.
const string = "something format_abc"; const regexp = /(?:^|\s)format_(.*?)(?:\s|$)/g; const matches = string.matchAll(regexp); for (const match of matches) { console.log(match); console.log(match.index); }
Dieser Ansatz bietet eine sauberere und intuitivere Handhabung mehrere Übereinstimmungen.
Das obige ist der detaillierte Inhalt vonWie greife ich in regulären JavaScript-Ausdrücken auf erfasste Untergruppen zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!