从PCRE到Hyperscan

0?wx_fmt=gif

点击蓝字关注DPDK开源社区

0?wx_fmt=jpeg

        Hyperscan作为高性能的正则表达式匹配库,使用者通常乐意将其与传统的正则表达式匹配库进行比较。“为什么要用Hyperscan?”“使用Hyperscan对我有怎样的好处?”本文以一款广泛使用的传统的正则表达式匹配库PCRE为例,说明Hyperscan与PCRE的差异与优势。

PCRE简介

        PCRE是Perl Compatible Regular Expressions的简称,是一款十分流行的用C语言编写的正则表达式匹配库,其灵感来源于Perl语言中的正则表达式功能,其语法比POSIX和其他许多正则表达式库更强大更灵活。

PCRE与Hyperscan的功能对比

        PCRE只支持块模式编译和匹配,而Hyperscan不仅支持块模式,还支持流模式。流模式在真实的网络应用场景中更加实用和灵活。

PCRE只支持单条正则表达式的编译和匹配,而Hyperscan可支持多条正则表达式的编译和匹配。在实际应用中经常会遇到多条正则规则的场景,对此Hyperscan可以做到一次编译和一次匹配即完成所有任务,非常高效。

从PCRE到Hyperscan的接口替换

PCRE与Hyperscan的常用接口类似,也分为编译期和运行期。

编译期接口替换:

在使用PCRE的产品中,通常用下面的接口对每一条正则规则分别进行编译:

  #include <pcre.h>  pcre *pcre_compile2(const char *pattern, int options, int *errorcodeptr, const char **errptr,   int *erroffset, const unsigned char *tableptr); 

若要替换为H

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值