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
私が間違っている可能性があることを教えてください。