要访问您需要使用的捕获组的内容
.str(1)
:
std::cout << match.str(1) << std::endl;
查看
C++ demo
:
int main()
{
const std::string s = "<abc>{{Test}}</abc><def>{{Again}}</def>";
// std::regex rgx("\\{\\{(\\w+)\\}\\}");
// Better, use a raw string literal:
std::regex rgx(R"(\{\{(\w+)\}\})");
std::smatch match;
std::sregex_iterator next(s.begin(), s.end(), rgx);
std::sregex_iterator end;
while (next != end) {
std::smatch match = *next;
std::cout << match.str(1) << std::endl;
next++;
}
return 0;
}
输出:
Test
Again
注意,您不必使用双反斜杠在内部定义正则表达式转义序列
未经加工的
字符串文字(这里,
R"(pattern_here)"
)