Reguläre Javascript-Ausdrücke: Wie behält man nur übereinstimmende Gruppen für einen beliebigen regulären Ausdruck bei?
P粉574695215
P粉574695215 2024-01-16 22:01:08
0
1
432

Gibt es in der JS-Regex-API eine Möglichkeit, die Eingabe so umzuschreiben, dass nur übereinstimmende Gruppen (in der richtigen Reihenfolge) beibehalten werden, es jedoch mit beliebigen regulären Ausdrücken funktioniert (einschließlich regulärer Ausdrücke ohne Erfassung von Gruppen)?

Zum Beispiel für den regulären Ausdruck /abc([D-F]+)gh([I-K]+)/ 和输入 abcFEEDghKIKI,我想要输出 "FEEDKIKI" , da es sich hierbei um die erfassten Teile handelt.

Der Eingabe-Regex kann jedoch auch /([a-zA-Z]+)/ sein, was lediglich den Originaltext für dieselbe Eingabe zurückgibt.

Wenn der reguläre Ausdruck /([0-9]+)/ ist, wird die leere Zeichenfolge zurückgegeben.

Der reguläre Ausdruck wird vom Tool generiert, aber es gibt viele reguläre Ausdrücke und ich möchte keinen Sonderfallcode für unterschiedliche Anzahlen von Erfassungsgruppen.

Idealerweise könnte ich in der Eingabe auch irgendwie auf die Länge des Matches zugreifen.

Ich gehe davon aus, dass es eine Möglichkeit gibt, dies über einen an replace() (oder ähnliches) übergebenen Rückruf zu tun, aber es ist nicht klar, wie/ob es möglich ist, den Index der einfangenden Gruppe abzurufen (oder ob dies in JS erforderlich ist).

Im Wesentlichen versuche ich zu reproduzieren, was Sie über die MatchResult API in Java tun können, wo Gruppen iteriert werden können und der Start-/Endindex der erfassenden Gruppe gefunden werden kann. < /p>

Vielen Dank im Voraus!

P粉574695215
P粉574695215

Antworte allen(1)
P粉071626364

发现: 如何访问JavaScript 正则表达式? 看起来(至少最初)使用 exec() 会做我想要的事情。

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage