这个函数可以正则匹配出一段文本,比如我们获取了一个网站的一个页面的txet文本后,可以利用本函数方便的取出我们想要的目标字段,比如,这个页面的title,keywords,等目标元素。
要使用此函数,需要你的vc工程是vs2010以上版本(从2010版本开始,微软才内置了“regex.h”的),首先包含头文件
#include <regex>
函数开始
// 这是一个匹配strBegin和strEnd之间字符串的函数
//str,指定要查找的字符串
//strBegin,指定开始处的字符串
//strEnd,指定结尾处的字符串
//长度为0,说明没有匹配成功
CString CConfigureDlg::GetMatchCString(CString strSearch, CString strBegin, CString strEnd)
{
CString strReturn;
//CString->string
std::string str(strSearch.GetBuffer());
//正则规则
std::string strbegin,strend,strreg;
strbegin = strBegin.GetBuffer();
strend = strEnd.GetBuffer();
strreg = "(.*?)";
strreg = strbegin + strreg + strend;
std::regex reg(strreg);
//存放匹配出来字符串
std::match_results<std::string::const_iterator> mr;
if (std::regex_search(str,mr,reg))
{
std::string s(mr.str());
//CString strURL;
strReturn = s.c_str();
//去掉前后两个标识符
strReturn.Replace(strBegin,"");
strReturn.Replace(strEnd,"");
}
return strReturn;
return CString();
}
std::match_results mr;
正确的为:std::match_results (左尖括号)std::string::const_iterator(右尖括号) mr;
编辑器会自动过滤对尖括号。。。