关于VC BOOST 正则表达式的问题

rundll64 rundll64 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
<td class="td1">2013-12-31</td>
<td class="td2">
<a href="/lottery/draw/view/52?phase=2013001">2013001</a>
</td>
<td class="td3"><span class="result"> <span class="ball_1">9</span>
<span class="ball_1">6</span>
<span class="ball_1">8</span>



上面的代码截取自网页

根据这段代码,自己整理出了段正则表达式,在工具中测试OK

正则如下:“<td\s*class="td1">\d{4}-\d{2}-\d{2}</td>\s*<td\s*class="td2">\s*<a\s*href="/lottery/draw/view/52.phase=\d+">\d+</a>\s*</td>\s*<td \s*class="td3"><span\s*class="result">\s*<span\s*class="ball_1">\d+</span>\s*<span\s+class="ball_1">\d+</span>\s*<span\s*class="ball_1">\d+</span>”



strHtml变量是个cstring类型,存储了打开的网页源码,我现在想知道的是,为什么我通关下面的按钮事件,不能正则到我想要的东西?

boost::tregex expression(_(T"上面的正则代码");
CString sRet;
CString in = _T("");
boost::tmatch what;
if(boost::regex_match(strHtml, what, expression))//CString转string
{
for(int i=0;i<what.size();i++)
{
sRet = CString(what[i].first, what.length(i));
MessageBox(sRet);
}
}
else
{
MessageBox(_T("Error Input"));
}
...全文

相关推荐

评论 1
收藏 已收藏
分享
返回顶部
rundll64
VC/MFC 16,550 成员 421,606 内容