Для произвольного std::regex
возможно ли узнать количество групп захвата в нем?
Предположим, что результат будет возвращен функцией CountCaptures()
. Вот что я хотел бы получить:
std::regex r1("(a)bc");
int i = CountCaptures(r1); // returns 1
std::regex r2("(a)(b)c");
int j = CountCaptures(r2); // returns 2
std::regex r3("abc");
int k = CountCaptures(r3); // returns 0
Я знаю, что это возможно с std::smatch
после сопоставления строки, но дело в том, что я получаю регулярное выражение от пользователя, и мне нужно ограничить группы захвата определенным образом перед сопоставлением любые строки.