Heim > Web-Frontend > js-Tutorial > Hauptteil

Wie erfasst man mehrere Gruppen in einem wiederholten JavaScript-Regex?

Linda Hamilton
Freigeben: 2024-11-13 10:33:02
Original
594 Leute haben es durchsucht

How to Capture Multiple Groups in a Repeated JavaScript Regex?

Beliebige Gruppen in JavaScript-Regexp erfassen

Bei der Verwendung von Erfassungsgruppen in regulären JavaScript-Ausdrücken ist es wichtig, die Einschränkungen zu verstehen. Standardmäßig wird nur die letzte Erfassung einer wiederholten Gruppe beibehalten, auch wenn die Gruppe verschachtelt ist.

Beispiel: Verschachtelte Erfassungsgruppe

Bedenken Sie den folgenden regulären Ausdruck:

/^(\s*\w+)+$/
Nach dem Login kopieren

Erwartete Ausgabe:

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

Tatsächlich Ausgabe:

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

In diesem Fall wird nur die zuletzt erfasste Gruppe „ baz“ zurückgegeben. Dies liegt daran, dass JavaScript nur die endgültige Erfassung für jede wiederholte Gruppe behält.

Optionen für die Erfassung mehrerer Gruppen

Um diese Einschränkung zu überwinden, stehen mehrere Optionen zur Verfügung:

  • Aufteilung nach Trennzeichen: Wenn möglich, verwenden Sie die Zeichenfolgenaufteilung, um die gewünschten Elemente zu trennen Segmente.
  • Exec-Schleife und Aufteilung:Verwenden Sie eine Exec-Schleife, um das Muster innerhalb einer Zeichenfolge wiederholt abzugleichen und die erfasste Gruppe in einzelne Übereinstimmungen aufzuteilen.
  • Mehrstufig Matching: Erfassen Sie die wiederholte Gruppe in einem Match und verwenden Sie dann einen anderen regulären Ausdruck, um die Einzelperson zu extrahieren Segmente.

Beispiel: Exec-Schleife und Aufteilung

Hier ist ein Beispiel für die Verwendung einer Exec-Schleife zum Erfassen und Teilen einer verschachtelten Gruppe:

var text = "a;b;<c;d;e;f>;g;h;i;<no no no>;j;k;<xx;yy;zz>";
var r = /<(\w+(;\w+)*)>/g;
var match;

while ((match = r.exec(text)) != null) {
  print(match[1].split(";"));
}

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

In diesem Beispiel wird die verschachtelte Gruppe als Gruppe 1 erfasst, die dann per Semikolon geteilt wird Trennzeichen.

Verwandte Fragen

  • Wie greifen Sie auf die übereinstimmenden Gruppen in einem JavaScript-Regex zu?

Das obige ist der detaillierte Inhalt vonWie erfasst man mehrere Gruppen in einem wiederholten 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