Я пытаюсь использовать именованные подвыражения для замены нескольких шаблонов во входной строке, используя boost::regex_replace и именованные подвыражения.
Я использую следующий код:
std::string s="Sun Fun Gun Tic Tac Toe ;$!";
boost::regex expr("(?<from1>.un)|(?<from2>[:;!])"); //Throws the error
std::string fmt("(?'from1'nm)(?'from2'sp)");
std::string s2 = boost::regex_replace(s,expr,fmt,boost::match_default|boost::format_all);
std::cout<<s2<<std::endl;
Однако при запуске выдает следующую ошибку:
terminate called after throwing an instance of 'boost::regex_error'
what(): Invalid preceding regular expression
Aborted
Подскажите пожалуйста, что я могу делать не так?