atl 正则表达式

gxhzippo 2012-03-18 04:04:06
需要一个鉴定url合法性的功能,我使用了atl自带的CAtlRegExp<>,正则表达式是从网上找了一个,用Reger Tester测试该正则式可以正常匹配网址,但是放到atl的正则表达式中就不行了,怀疑两者正则语法不同
直接上代码

#include <atlrx.h>
int _tmain(int argc, _TCHAR* argv[])
{
CString strWeb = _T("http://sina.com.cn");
CAtlRegExp<> reUrl1;
REParseError status = reUrl1.Parse(_T("(http|https)://([\\w-]+\\.)+[\\w-]+(/[\\w- ./?%&=]*)?")); //parse不通过,错误为REPARSE_ERROR_BRACKET_EXPECTED,如果换成下面注释的这一行则Parse可以通过,但是match失败
//REParseError status = reUrl1.Parse(_T("(http|https)://([-\\w]+\\.)+[-\\w]+(/[-\\w ./?%&=]*)?"));
if (REPARSE_ERROR_OK != status)
{
// Unexpected error.
return 0;
}

CAtlREMatchContext<> mcUrl1;
if (!reUrl1.Match(strWeb, &mcUrl1))
{
// Unexpected error.
return 0;
}
return 0;
}


请高手解答一下,谢谢
...全文
135 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
JoeBlackzqq 2012-03-23
  • 打赏
  • 举报
回复
[\\w- .\\?%&=]

3,248

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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