关于VC BOOST 正则表达式的问题
<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"));
}
相关推荐
已编译好的正则表达式库(VC6.0)(boost源码)
已编译好的正则表达式库(支持VC++6.0)(boost源码,版本为boost_1_35_0)。头文件可下载boost_1_35_0源码。
boost_regex-vc6-1_37
boost regex vc6.0库文件
vc_greta.rar_VC greta_VC greta错误_正则表达式
教你使用如何使用正则表达式,用VC实现并有实例,可以借鉴
编译好的boost-1.34.1
vc6可利用boost库使用正则表达式。支持vc6的最高boost版本是1.34.1。很多人编译boost库遇到这样那样的问题。这个是我编译好的库,直接解压后,在vc中设置好include和lib路径即可使用。 测试程序: #include #include #include #include #include using namespace std; using namespace boost; int main( int argc, char * argv[]) { regex expression_r_r_r_r( " (\\d+)-(\\d+)-(\\d+) " ); // 注意转义方式 string in ( " Today: 2007-06-23 " ); cmatch what; // 如果用 regex_match 方法将需要完全匹配, // 不能在字符串中找寻模式,可用于验证输入 if (regex_search( in.c_str(), what, expression_r_r_r_r)) { for ( int i = 0 ;i < what.size();i ++ ) { cout << " str : [" << what[i].str() << "]" << endl; } } return 0 ; }
Boost编译好的库和头文件及一个例子C++
网上的库多没有头文件,所以常出错,我加入了头文件并做了一个vc6例子


