这个函数可以正则匹配出一段文本,比如我们获取了一个网站的一个页面的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;
编辑器会自动过滤对尖括号。。。