Zugriff auf alle Erfassungen in regulären JavaScript-Ausdrücken
Das Problem entsteht, wenn versucht wird, mehrere Gruppen in einem regulären JavaScript-Ausdruck zu erfassen, wobei nur die letzte Die Erfassung bleibt erhalten.
Betrachten Sie das folgende Beispiel:
"foo bar baz".match(/^(\s*\w+)+$/)
Anstatt alle Übereinstimmungen wie ["foo", "bar", "baz"] zurückzugeben, wird nur ["baz" zurückgegeben "]. Dieses Verhalten tritt auf, weil wiederholte Erfassungsgruppen frühere Erfassungen überschreiben.
Um dieses Problem zu beheben, ziehen Sie alternative Ansätze in Betracht:
Zum Beispiel, um eine Folge von Wörtern zu erfassen, die in < > und teilen Sie sie auf ;, betrachten Sie das folgende Beispiel:
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(";")); }
Diese Regex teilt die erfasste Sequenz in einzelne Wörter auf.
Referenzen:
Das obige ist der detaillierte Inhalt vonWie erfasst man mehrere Gruppen in regulären JavaScript-Ausdrücken?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!