Visual Studio 2012 Part7
■ このスレッドは過去ログ倉庫に格納されています
0272デフォルトの名無しさん
2013/09/21(土) 17:15:47.63以下のコードで例外はかれるんですが
正規表現の記述方法がオーソドックスな方法と異なっているとかありましたっけ?
やりたいことはパスに含まれる\を/に置換したいだけなんですが・・
boostとかでは動いてました。
#include <string>
#include <regex>
void test(void)
{
std::string org_path = "hoge\\hage\\fuga/aaa\\hoger";
std::regex expression( "[\\]+" );
std::string replace( "/" );
std::string new_path = regex_replace( org_path, expression, replace );
}
まず置換以前に regexのコンストラクタ
expression( "[\\]+" );
で例外(std::tr1::regex_error)がでます。
これを
expression( "\\" );
にしたところ例外はでなくなりregex_replaceも実行されますが
\が/に置換されません。
[]系の角括弧で落ちてるのかと思い、
expression( "[h]" );
とかにしてテストしてみましたが、こっちは正常置換されました。
これ何とかなりませんかね・・?
■ このスレッドは過去ログ倉庫に格納されています