在MFC程序中,利用boost 正则表达式获取URL参数示例

来源:互联网 发布:虚拟机 网络连接方式 编辑:程序博客网 时间:2024/05/17 06:21

在MFC程序中,利用BOOST regex正则表达式获取 URL参数的示例


#include <boost/regex.hpp>void CMyClass::GetCmdParams(){    map<wstring, int> _cmdMap;enum{_CMDLINE_UID,_CMDLINE_UNAM,_CMDLINE_UAGE};_cmdMap[L"UID"] = _CMDLINE_UID;_cmdMap[L"UNAM"] = _CMDLINE_UNAM;_cmdMap[L"UAGE"] = _CMDLINE_UAGE;if(__argc>1){wstring _CmdLine = __targv[1];}//假设URL为http://www.myurl.com/aspx?UID=1234&UNAME=Alex&UAGE=25&boost::wregex rx(L"(?<_key>\\w+)=(?<_val>\\w+)(?=&)");boost::wregex_iterator pos(_CmdLine.begin(),_CmdLine.end(),rx);boost::wregex_iterator end;while(pos!=end){wstring fullStr = (*pos)[0];wstring _key = (*pos)[1];wstring _val = (*pos)[2]switch(_cmdMap[_key]){case _CMDLINE_UID:m_nUID =  _wtoi(_val.c_str());case _CMDLINE_UNAM:m_strUNAM = _val.c_str();case _CMDLINE_UAGE:m_strUNAM = _wtoi(_val.c_str());default://忽略无效参数break;}++pos;}}

注:在MFC程序中,应用宏_T(x)来替代 字符窜的L前缀,若不使用MFC,且使用多字节字符库,则去掉L前缀

0 0
原创粉丝点击