0

我的 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);

但是上面的代码有它的弱点:我不能枚举所有不在键盘上的符号。有没有其他方法可以达到我的目标?

4

1 回答 1

0

性(\W|_)*爱可以解决我的问题,\W表示排除所有字符(包括中文或其他语言)和下划线符号' _',所以我附加' _'并满足要求。

于 2013-01-04T08:54:06.350 回答