Boost正则表达式库regex常⽤search和match⽰例⽰例很简单,但是很有针对性,可以根据⽰例进⾏不⽤的修改,之后加⼊到各种⼯程中。
#include <cstdlib>
#include <stdlib.h>
#include <boost/regex.hpp>
#include <string>
#include <iostream>
using namespace std;
using namespace boost;
regex subexp("e[cl][oe][mc]");
regex expression("^select ([a-zA-Z]*) from ([a-zA-Z]*) secom");regex匹配
int main(int argc, char* argv[])
{
//输⼊:select name from table secom
//输出:str:select name from table
//str:name
//str:table
//std::string in;
cmatch what; string in="select name from table secom" ;
cmatch sub ;
if(regex_match(in.c_str(),what,expression))
{
//regex_match :是对整个输⼊块的匹配,整个块如不匹配则不能成功
for(unsigned int i=0;i<what.size();i++)
cout<<"str :"<<what[i].str()<<endl;
}
else
{
cout<<"Error Match"<<endl;
}
printf("%s\n",in.c_str());
while(regex_search(in.c_str(),sub,subexp))
{
//单字搜索,将每次匹配到的结果输出
printf("%s\n",sub.base());
printf("%s\n",sub[0].str().c_str());
in = sub[0].second;
}
return 0 ;
}
最简单的 正则匹配式⼦ :
regex expression("^(.*)"); //全部成功
然后匹配⼀个json 如下:
regex expression("^[\{](.*)[\}]");
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论