Boost :: xpressive regex_search объединяет совпадения в одной строке - PullRequest
0 голосов
/ 30 мая 2019

Я хочу объединить все совпадения, найденные 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();
}
...