第1章 boost 正则表达式
需要下载最新boost库,编译。 我是在vs2013里使用boost_1_60_0,前提步骤:
(1)需要在项目属性-》C/C++-》常规-》附加包含目录 里添加 XX/boost_1_60_0 ;
(2)需要在链接器-》常规-》附加库目录 里添加D:\tools\boost_1_60_0\libs 和D:\tools\boost_1_60_0\stage\lib
1.regex 匹配字符串 简单使用
.头文件#include<boost/regex.hpp>
string patstr="samsung";
boost::regex re("SAMSUNG|三星",boost::regex::icase | boost::regex::perl);
boost::smatch mat;
bool bRet = boost::regex_search(patstr,mat,re);
if(bRet == true)
{
// to do (匹配成功)
}
注:
boost::regex::icase/boost::regex::perl是标志开关,表示忽略大小写。可以把需要的标志开关打开,不需要时默认关闭。
patstr,mat,re的类型如下:
str类型 |
m类型 |
re类型 |
string |
smatch (match_results<string::const_iterator>) |
regex (basic_regex<char>) |
wstring |
wsmatch (match_results<wstring::const_iterator>) |
wregex (basic_regex<wchar_t>) |
char* |
cmatch (match_results<const char*>) |
regex (basic_regex<char>) |
wchar_t* |
wcmatch (match_results<const wchar_t*>) |
wregex (basic_regex<wchar_t>) |