C++ 提取网页内容系列之三

标 题: C++ 提取网页内容系列
作 者: itdef
链 接: http://www.cnblogs.com/itdef/p/4171659.html 

欢迎转帖 请保持文本完整并注明出处

 

这次继续下载网页后 对其中内容的分析

使用tr1(c++预备标准库)中的正则式

void ContentSearchMainRecommend(const string& content)

{

	string text = content;

	string regString( "首页大推','([^']*)'" );

	string regSubString("<strong class=\"strong color_orange\">([^<]*)</strong>");

	regex regExpress(regString);

	regex regSubExpress(regSubString);





	//string::size_type pos = content.find(strSearch);

	smatch ms;



	// 判断是否全行匹配

	while(regex_search(text, ms, regExpress))

	{

		string strResult;

		if(ms.size() == 2)

		{

			strResult = ms.str(1).c_str();

		}

		cout << "首页大推:\t" << strResult  << "\t\t";

		text = ms.suffix().str();

		if(regex_search(text, ms, regSubExpress))

		{

			if(ms.size() == 2)

			{

				cout << ms.str(1).c_str() << endl;

			}

		}else

		{

			cout << "search substring error" << endl;

			break;

		}

	}

	return ;

}

正则式的内容 如果不熟悉的话可以参考网络上流传的<30分钟正则式入门>

但是对于450K的网页 使用正则式匹配似乎比直接搜索要慢上不少

// 待续

 

你可能感兴趣的:(C++)