私のIDEはVS 2012で、C++ 0xを使用しています。中国語の文字列を処理して、単語が特殊な記号で分割されている場合でも、単語を別の単語に置き換えたいと考えています。キーボード上のすべての特殊記号を列挙しましたが、うまく機能します。コードは次のようになります。
std::wstring ws_str = L"性 \t\r\n`~!@#$%^&*()-_=+[{]}\\|;:'\",<.>/?爱";
std::wregex wrx(L"性[\\s`~!@#$%^&*()-_=+\\[\\{\\]\\}\\|;:'\",<.>/?]*爱");
std::wstring wfmt(L"革命");
std::locale::global(std::locale("chs"));
std::wstring ws_res = std::regex_replace(ws_str, wrx, wfmt);
しかし、上記のコードには弱点があります。キーボード上にないすべての記号を列挙することはできません。目標を達成できる他の方法はありますか?