我的 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);
但是上面的代码有它的弱点:我不能枚举所有不在键盘上的符号。有没有其他方法可以达到我的目标?