佚名通过本文主要向大家介绍了atl方形动力电池,atl34砂轮,atl80.dll官方下载,atl71.dll修复,atl71.dll一键修复等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: atl 正则表达式
描述:
请高手解答一下,谢谢
描述:
需要一个鉴定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;
}
请高手解答一下,谢谢