我想将 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,
// concatenated 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();
}