2 xlp sky xlp_sky 于 2016.02.02 16:28 提问

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

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

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

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

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

2个回答

oyljerry
oyljerry   Ds   Rxr 2016.02.02 16:45

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

xlp_sky
xlp_sky 感谢回答,你那边可以提供给我一个表达式不?我刚把\w加进去 还是不行 字母数字也都显示不出来了,小白求指教哇
接近 2 年之前 回复
q107770540
q107770540   Ds   Rxr 2016.02.23 15:02

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

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

试试这个:

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

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!