[\\u4e00-\\u9fa5]正则表达式不能婚配全部中文

[\\u4e00-\\u9fa5]正则表达式不能匹配全部中文?
今天做个C++的小程序,出现了[\\u4e00-\\u9fa5]正则表达式不能匹配全部中文的情况,具体如下:
1、环境:
    操作系统--Xp虚拟机
    开发平台--VC6
    正则类库--boost1.34.0--regex

2、代码:

std::string str("是");

regex rx("[\\u4e00-\\u9fa5]+");

bool bl = regex_match(str , rx);
if (bl)
cout << "sucess" << endl;
else
cout << "unsucess" << endl;

std::string ph("加");
regex rxf("[\\u4e00-\\u9fa5]+");
bl = regex_match(ph,rx);
if(bl)
cout<<"yes"<<endl;
else
cout<<"no"<<endl;

return 0;



3、输出是:
sucess
no

4、测试情况
“是”、“人”、“在”等中文字符能匹配,而“加”、“解”等则不能匹配。
5、问题:
  [\\u4e00-\\u9fa5]+是不是不能包含所有中文字符?如何才能匹配所有中文字符?
------解决思路----------------------
[\\u4e00-\\u9fa5] 这个是Unicode set utf-16的编码范围。

std::string str("是"); 窄字符串,肯定不是utf16的。用wstring试试 str::wstring str(L"是");
------解决思路----------------------
也用宽字符版本的

template <class charT, class traits = regex_traits<charT>, class Allocator = std::allocator<charT>  >

class basic_regex;

typedef basic_regex<char> regex;

typedef basic_regex<wchar_t> wregex;
------解决思路----------------------
提醒楼主:
在字符串扫描替换问题域中,正则表达式不是万能的;而有限状态自动机是万能的。
参考《编译原理》中的词法分析和有限状态自动机。