C++ 正则表达式 汉字有些显示不出

在C++中使用正则表达进行匹配,想实现只可以匹配汉字、字母、数字、下划线
用的如下公式:

regex pattern("^[a-zA-Z0-9_\u4e00-\u9fa5]{0,}+$");

编译运行的时候,数字、字母均可以实现,下划线实现不了,汉字是有些不能显示。

求教各位大神指出哪边有问题,或者可不可以教我正确的表达式~不吝感激

字母数字下划线,可以用\w来代替
汉字要看你的字符串中汉字是否为unicode的编码。

egex pattern("^[a-zA-Z0-9_\u4e00-\u9fa5]{0,}+$");

你的正则里为何要写 {0,}? 后边的+ 已经表示匹配1-N次了,前边再来个 {0,}实在让我看不懂。。。

试试这个:

regex pattern("^[a-zA-Z0-9_\u4e00-\u9fa5]+$");