正则匹配多个关键词_用它匹配大数据长文本,让处理效率提升 100 倍 !

e16c897ea969968dfd5dd3fd42b8126e.png

原来文本匹配的方式一直是用中规中矩的正则来做,最近在实际生产中由于数据量骤升,现有数据量提高了大约 3-4 倍,原本使用正则处理已经到了瓶颈,这次又有增量对生产来说可谓雪上加霜,而且随着正则词越加越多,匹配效率也越来越差,数据量的激增再加上正则词越加越多,提升生产的匹配效率已是迫在眉睫。

最近一段时间我也一直再搞这部分,现在初见成效,在测试新方法匹配过程中,发现有的长正则匹配效率甚至提高了 100 倍,而且是越长文本 越长正则 提升越高。

本次就来聊聊这次优化正则的经历,需要代码的朋友直接到文末下载即可。

1准备阶段:AC多模匹配

在谈优化正则前,我们先要知道 AC多模匹配 的概念,AC 多模匹配重点在于 字典树 和 它的失败节点匹配算法(KMP模式匹配),字典树我们都很熟悉,假设有 "aaa ,abc,bcd,cab,cad" 这几个字符串需要存储,它们在字典树中的位置这里以一张图做个简单的示意:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值