我想使用boost regex从c ++中的字符串中提取所有短划线数字(如232-65) 我使用这种模式
\\d*-\\d*
但仅检测到第一个匹配。我该怎么做才能提取所有匹配的模式。
示例输入:
"2 1 5-25 37 42 43 53 69-119 123-514"
输出只有5-25但必须是5-25 69-119 123-514
我的示例代码是
cmatch res;
boost::regex port("\\d*-\\d*");
regex_search(s,res, port);
for (unsigned int i = 0; i < res.size(); ++i) {
cout << res[i] << endl;
}
答案 0 :(得分:0)
您希望在正则表达式中嵌入带括号的“子表达式”,这将在匹配过程中提取。去阅读提升页面,搜索子表达式匹配....