C++正则表达式

C++正则表达式整理:

"[^c]"匹配任意不是'c'的单个字符 
"[[:alpha:]]"匹配任意单个字母 
"*"零个或多个 
"+"一个或多个 
"[[:alpha:]]*"零个或多个字母 
"[[:alpha:]]+"一个或多个字母 
   
string pattern("[^c]ei"); //不是'c'+"ei"的三字母字符串
pattern = "[[:alpha:]]*"+pattern+"[[:alpha:]]*"; //零个或多个字母+非'c'的单个字母+"ei"+零个或 
                                                 //多个字母
regex r(pattern); //构造一个用于查找模式的regex正则表达式对象
smatch results;   //定义一个对象保存搜索结果
string test_str = "receipt freind theif receive";
//用正则表达式r在test_str中查找与正则表达式的字符串pattern匹配的子串
if(regex_search(test_str,results,r))
   cout<<results.str()<<endl; //如果找到第一个匹配的字符串则打印该字符串,由于过滤了空格,所以是 
                              //个单词

C++正则表达式库(RE库)定义在头文件<regex>中,可用类或函数有:

regex表示一个正则表达式的类,可使用一个正则表达式字符串构造一个正则表达式对象 

regex_match(seq,<smatch>,<regex>,mft)

regex_match(seq,<regex>,mft)

将一个字符序列seq与一个正则表达式匹配,返回bool 

regex_search(seq,<smatch>,<regex>,mft)

regex_search(seq,<regex>,mft)

寻找字符序列seq中第一个与正则表达式匹配的子序列并存储在results r,返回bool 
regex_replace使用给定格式替换一个正则表达式 
sregex_iterator迭代器适配器,调用regex_search来遍历一个string中所有匹配的子串 
smatch容器类,保存在string中搜索的结果 
ssub_matchstring中匹配的子表达式的结果 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值