如何使用正则表达式匹配只有中文字母的字符串?

mag*_*ang 6 c++ regex unicode boost visual-c++

我想得到一个正则表达式,只能匹配一个由中文字符组成的字符串,没有英文或任何其他字符.[\ u4e00-\u9fa5]根本不起作用,[^ x00-xff]会与标点符号或其他语言字符匹配.

boost::wregex reg(L"\\w*");
bool b = boost::regex_match(L"?a", reg);    // expected to be false
b = boost::regex_match(L"?,", reg);         // expected to be false
b = boost::regex_match(L"?", reg);          // expected to be true
Run Code Online (Sandbox Code Playgroud)

mag*_*ang 1

以下正则表达式工作正常。

boost::wregex reg(L"^[\u4e00-\u9fa5]+");
Run Code Online (Sandbox Code Playgroud)