Heim > Web-Frontend > js-Tutorial > Wie erfasst man mehrere Vorkommen einer Gruppe in JavaScript Regex?

Wie erfasst man mehrere Vorkommen einer Gruppe in JavaScript Regex?

Mary-Kate Olsen
Freigeben: 2024-11-11 03:16:03
Original
444 Leute haben es durchsucht

How to Capture Multiple Occurrences of a Group in JavaScript Regex?

Beliebige Gruppen in JavaScript Regex erfassen

Bei der Verwendung regulärer Ausdrücke zum Erfassen von Gruppen ist es wichtig, die durch bestimmte Muster auferlegten Einschränkungen zu verstehen. Während wiederholte Erfassungsgruppen verwendet werden können, um mehrere Vorkommen abzugleichen, wird in JavaScript nur die letzte Erfassung beibehalten.

Betrachten Sie das folgende Beispiel:

"foo bar baz".match(/^(\s*\w+)+$/)
Nach dem Login kopieren

In diesem Muster ist die Erfassungsgruppe (s *w ) wird mit dem Quantor wiederholt. Die Engine für reguläre Ausdrücke von JavaScript erfasst jedoch nur das letzte Vorkommen, nicht die Zwischenübereinstimmungen. Als Ergebnis lautet die Ausgabe:

["foo bar baz", " baz"]
Nach dem Login kopieren

Um alle erfassten Übereinstimmungen abzurufen, sollten Sie die folgenden Strategien in Betracht ziehen:

Nach Trennzeichen aufteilen:
Wenn möglich, Teilen Sie die Zeichenfolge anhand vordefinierter Trennzeichen auf, anstatt einen komplexen regulären Ausdruck zu verwenden.

Exec-Schleife mit Wiederholung Gruppen:
Erstellen Sie ein Muster, das die wiederholte Gruppe erfasst, und verwenden Sie dann eine Exec-Schleife, um die Übereinstimmungen zu durchlaufen. Sobald die vollständige Gruppe erfasst ist, teilen Sie sie am inneren Trennzeichen auf.

Mehrstufiges Matching:
Unterteilen Sie das Problem in mehrere Phasen, indem Sie die wiederholte Gruppe in einem Muster erfassen und dann verwenden ein nachfolgendes Muster zum Extrahieren einzelner Übereinstimmungen.

Beispiel:

Zum Abgleichen und Teilen Verwenden Sie für die Zeichenfolge das folgende Muster:

/<(\w+(;\w+)*)>/g
Nach dem Login kopieren

Dieses Muster erfasst die gesamte wiederholte Gruppe in Gruppe 1. Teilen Sie dann in der Exec-Schleife die erfasste Zeichenfolge mit dem ; Trennzeichen.

var text = "a;b;;g;h;i;;j;k;";

var r = /<(\w+(;\w+)*)>/g;

var match;
while ((match = r.exec(text)) != null) {
  console.log(match[1].split(";"));
}
Nach dem Login kopieren

Ausgabe:

["c", "d", "e", "f"]
["xx", "yy", "zz"]
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie erfasst man mehrere Vorkommen einer Gruppe in JavaScript Regex?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage