Я хочу объединить все совпадения, найденные regex_search, в одну строку, а затем вернуть ее.Я пытался сделать это с помощью std :: накопить, но не получилось.
Есть ли способ вернуть что-то вроде std :: аккумулировать (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();
}