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++使用说明
最新推荐文章于 2025-06-28 14:54:30 发布