【发布时间】:2019-06-06 07:22:49
【问题描述】:
对于任意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 可以做到这一点,但问题是我从用户那里收到了一个正则表达式,我需要在匹配任何字符串之前以某种方式限制捕获组。
【问题讨论】:
标签: c++ regex c++11 c++14 capture-group