问题描述
- 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]+$");
时间: 2024-08-04 07:12:06