一个简单的问题

夹心饼干 2009-05-27 02:37:41
我正在学习正则表达式,写了个基本的匹配汉字和字母的有一点疑问

^([u4e00-\u9fa5|A-Za-z0-9])+$
代码如下:
#include "stdafx.h"
#include <iostream>
#include "boost/regex.hpp"
using namespace boost;
using namespace std;

char* name_regex = "^([u4e00-\u9fa5|A-Za-z0-9])+$";//问题是这样的,我在网上看到的匹配汉字应该是[\u4e00-\u9fa5],但是如果是这样就不行换成[u4e00-u9fa5]也不行
//我记得u好象不是转义符号啊?有没有人解释一下
bool regex_verify(const char* str1,char* regex_s)
{
boost::regex exampleregex(regex_s);
boost::cmatch result;
return boost::regex_search( str1, result, exampleregex );
}

int _tmain(int argc, _TCHAR* argv[])
{
const char* str = "爱sdf";
if (regex_verify(str,name_regex))
{
cout<<"success========="<<endl;
}
else
{
cout<<"failed========="<<endl;
}
return 0;
}
...全文
149 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
夹心饼干 2009-05-27
  • 打赏
  • 举报
回复
谢谢楼上的,感激不尽
jarraytan 2009-05-27
  • 打赏
  • 举报
回复
http://blog.csdn.net/boythl/archive/2008/11/20/3341278.aspx
楼主可以看看我的blog, 我先前也烦过这事。
如果你的编码是ansii,就不能用\u,用\x
jarraytan 2009-05-27
  • 打赏
  • 举报
回复
http://blog.csdn.net/boythl/archive/2008/11/20/3341278.aspx
楼主可以看看我的blog, 我先前也烦过这事。
如果你的编码是ansii,就不能用\u,用\x
夹心饼干 2009-05-27
  • 打赏
  • 举报
回复
第一个问题搞明白了,2楼的说得对.\u是一个转义符
另外一个问题就是刚才问的 如果用"^([u4e00-\u9fa5|A-Za-z0-9])+$"匹配汉字,一些符号也成立,比如"@:;~`|^";这些符号不应该是汉字编码范围里面的啊?
夹心饼干 2009-05-27
  • 打赏
  • 举报
回复
还有个问题就是,如果用"^([u4e00-\u9fa5|A-Za-z0-9])+$"匹配汉字,一些符号也成立,比如"@:;~`|^";这些符号不应该是汉字编码范围里面的啊?
Sou2012 2009-05-27
  • 打赏
  • 举报
回复
学习了!
夹心饼干 2009-05-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 taodm 的回复:]
呃,搞中文前先去学学中文编码吧。gb2312,unicode等等的区别。
你误搞了个unicode的东西来用了。
[/Quote]
"误搞了个unicode的东西来用了"这个不是很明白,\u后面接的是一个16进制的unicode字符,但是这个有什么影响呢?
光宇广贞 2009-05-27
  • 打赏
  • 举报
回复
http://zh.wikipedia.org/w/index.php?title=%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F&variant=zh-cn#.E5.9F.BA.E6.9C.AC.E6.A6.82.E5.BF.B5

维基百科上写着了 \u 是一个转义符。
taodm 2009-05-27
  • 打赏
  • 举报
回复
呃,搞中文前先去学学中文编码吧。gb2312,unicode等等的区别。
你误搞了个unicode的东西来用了。

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧