Regex, um die Anzahl der Erfassungsgruppen in einer Regex zu zählen
Ich benötige einen regulären Ausdruck, der einen beliebigen regulären Ausdruck (als Zeichenfolge) untersucht und die Anzahl der Erfassungsgruppen zurückgibt. Bisher habe ich ...
arbitrary_regex.toString().match(/\((|[^?].*?)\)/g).length
Das funktioniert in einigen Fällen, in denen die Annahme, dass jede Gruppe, die mit einem Fragezeichen beginnt, nicht erfasst wird. Es werden auch leere Gruppen gezählt.
Es funktioniert nicht für Klammern, die in Zeichenklassen enthalten sind, oder maskierte Klammern und möglicherweise einige andere Szenarien.