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 ) $/
Erwartet Ausgabe:
["foo bar baz", "foo", " bar", " baz"]
Tatsächliche Ausgabe:
["foo bar baz", " baz"]
In diesem Fall wird nur die letzte 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:
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"]
In diesem Beispiel wird die verschachtelte Gruppe als Gruppe 1 erfasst, die dann anhand des Semikolon-Trennzeichens aufgeteilt wird.
Ähnliche Fragen
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3