我正在尝试使用命名子表达式来替换输入字符串中的多个模式,使用 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;
但是,当运行 thos 会引发以下错误:
terminate called after throwing an instance of 'boost::regex_error'
what(): Invalid preceding regular expression
Aborted
请指导我可能做错了什么?