在VC7用atl库开发正则表达式的程序,高手请指点!高分相送

xsc2001 2006-12-29 05:25:49
我用vc7写了一个正则表达式程序,我用微软的测试器测试时正常,可是用程序就是不对。其代码如下:请高手给点指点,在此不胜感谢!
void CRegExpTestDlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
CAtlRegExp<> reUrl;
//REParseError status = reUrl.Parse("({[^:/?#]+}:)?(//{[^/?#]*})?{[^?#]*}(?{[^#]*})?(#{.*})?");
REParseError status = reUrl.Parse("http://sports\.sina\.com\.cn/\w/\d{4}-\d{2}-\d{2}/\d+.shtml");
if(REPARSE_ERROR_OK != status)
return;

CString strUrl;
GetDlgItem(IDC_EDIT1)->GetWindowText(strUrl);
CAtlREMatchContext<> mcUrl;
if (!reUrl.Match(strUrl, &mcUrl))//http://search.microsoft.com/us/Search.ASP?qu=atl&boolean=ALL#results
return;

for(UINT nGroupIndex = 0; nGroupIndex < mcUrl.m_uNumGroups; ++nGroupIndex)
{
const CAtlREMatchContext<>::RECHAR* szStart = 0;
const CAtlREMatchContext<>::RECHAR* szEnd = 0;
mcUrl.GetMatch(nGroupIndex, &szStart, &szEnd);
ptrdiff_t nLength = szEnd - szStart;
CString str;
str.Format("%d: \"%.*s\"\n", nGroupIndex, nLength, szStart);
AfxMessageBox(str);
}
}
...全文
82 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
真相重于对错 2006-12-30
  • 打赏
  • 举报
回复
注意转义字符
\ ===> \\
真相重于对错 2006-12-30
  • 打赏
  • 举报
回复
\.sina\.com\.cn/\w/\d{4}-\d{2}-\d{2}/
\w ===〉\\w
\.===>\\.
xsc2001 2006-12-30
  • 打赏
  • 举报
回复
转义字符是对的呀?我在那个正则表达式测试工具中测试是好的,但是在我写的上面这段程序里就是不对,匹配不出来。

7,540

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 VC.NET
社区管理员
  • VC.NET社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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