在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]+$");