Pcre++使用说明 之前使用过一段时间boost,做为客户端时,虽然有过异常,但是都可以通过try{}catch(){}来解决了,但是 这次开发服务器时,当进行并发测试时,因为boost的问题,程序莫名地崩溃,而且通过捕获异常,也解决不了问题。 于是我们决定换用Pcre++,包很小而且使用也比较简单,现总结如下,给需要的朋友,如果有什么错误的地方,大家可以一起讨论,因为我也是刚开始用而已。呵呵~ 1、进行整体匹配的判定 #include "pcre++.h" using namespace pcrepp; bool PcreClass::IsOrNotMatch(const char* str,const char * regx) { Pcre regex(regx,"g"); try { regex.search(str); if(regex.matched ())//提供的是否匹配方法,必须与search配合使用 { return true; } else { return false; } } catch(...) { printf("正则表达式异常/n"); return false; } } 2、分割操作:按某一分割符进行分割 #include "pcre++.h" using namespace pcrepp; void PcreClass::BySplit(const char* str,const char* expression,vector
&strVector) { Pcre regex(expression, "g"); try { strVector = regex.split(str); } catch(...) { printf("正则表达式异常/n"); } } 注意: **其中,当正则表达式中带括号时,表明括号外的数据保留。** 3、按需要进行截取操作 #include "pcre++.h" using namespace pcrepp; string PcreClass::GetSubStr(const char* str,const char* expression { Pcre regex(expression, "g"); string cmd(str); try { regex.search(str.c_str()); int epos = regex.get_match_end(); int spos = regex.get_match_start(); if (epos > spos) { return cmd.substr(spos,epos-spos+1); } else { return ""; } } catch(...) { cout<<"error!"<
Pcre++使用说明
最新推荐文章于 2022-01-17 15:42:03 发布