Регулярное выражение для подсчета количества групп захвата в регулярном выражении
Мне нужно регулярное выражение, которое проверяет произвольное регулярное выражение (в виде строки), возвращая количество групп захвата. Пока у меня есть ...
arbitrary_regex.toString().match(/\((|[^?].*?)\)/g).length
Это работает для некоторых случаев, когда предположение о том, что любая группа, начинающаяся с вопросительного знака, не захватывает. Он также считает пустые группы.
Он не работает для скобок, включенных в классы символов, или для исключенных скобок, и, возможно, для некоторых других сценариев.