boost :: xpressive статическое использование before (...) не работает - PullRequest
0 голосов
/ 17 апреля 2019

В контексте нашего проекта я должен преобразовать большое количество регулярных выражений Perl в статический код boost :: xpressive на c ++.

Моя проблема в том, что я не могу использовать вызов before(...)с любым успехом.

Вот мой тестовый код:

#include <string>
#include <iostream>
#include <boost/xpressive/xpressive_static.hpp>
#include <boost/xpressive/regex_actions.hpp>

using namespace boost::xpressive;

int main()
{
    std::string strInput = "&9-A02FEfoo";
    std::string strResult = "failed";
    sregex re;
    smatch sm;

    re = bos >> as_xpr("&9-A02FE") >> before("foo");
    if(regex_match(strInput, sm, re))
    {
        strResult = "matched : " + sm[0].str();
    }

    std::cout << strResult << std::endl;
}

Это не помогает систематически, за исключением того, что я удаляю foo из строки и изменяю вызов на before на before(eos).

Обратите внимание, что я обязан использовать версию Boost 1.67.0.

Я что-то здесь не так сделал?

Это известная проблема?


Извините, я забыл указать тип переменной для re.

Ожидаемый результат, очевидно, что вызов regex_match(...) завершается успешно - чего он не делает в настоящее время,но следует согласно документации.

...