我想将regex_search找到的所有匹配项合并为一个字符串,然后将其返回。我尝试用std :: accumulate来做,但是失败了。
有一种方法可以返回类似std :: accumulate(what.begin()+ 1,what.end(),someFunc)的东西吗?
我对函数式编程不是很熟悉,所以如果我问的问题很愚蠢,请原谅我。我知道我可以创建一个将字符串添加在一起的for循环,但是我想尝试这样做。预先感谢!
这是一个伪代码段,可以帮助您更好地理解我想做什么。
std::string foo(const std::string& text)
{
using namespace boost::xpressive;
sregex srx = +_d >> as_xpr("_") >> +_d; // some random regex
smatch what;
if (regex_search(filename, what, srx))
{
// Here I want to return a string, concatinated from what[1].str() + what[2].str() + ... + what[n].str();
// How do I do this? What about what[1].str() + "-" + what[2].str()...?
}
return std::string();
}