字符串匹配方法,装置,存储介质及电子设备制造方法及图纸

技术编号:22075773 阅读:39 留言:0更新日期:2019-09-12 14:09
本公开涉及一种字符串匹配方法,装置,存储介质及电子设备,所述方法包括:加载第一待匹配字符串;获取多模式匹配AC自动机的节点元素在所述第一待匹配字符串中的位置信息,和所述节点元素在所述AC自动机上所处的节点位置关系,所述AC自动机是根据字符串的预定匹配规则生成的;根据所述位置信息和所述节点位置关系构建跳表;深度优先遍历所述AC自动机,并根据所述跳表分别获取各目标节点与所述目标节点的父节点之间的路径与所述第一待匹配字符串的第一匹配结果,所述目标节点为每次遍历到的节点;根据所述AC自动机所包括的每一路径与所述第一待匹配字符串的第一匹配结果,输出所述第一待匹配字符串与所述预定匹配规则的匹配结果。

String matching method, device, storage medium and electronic equipment

【技术实现步骤摘要】
字符串匹配方法,装置,存储介质及电子设备
本公开涉及文本或网络内容处理领域,尤其涉及一种字符串匹配方法,装置,存储介质及电子设备。
技术介绍
信息,是一种普遍联系的形式。合理的对信息进行匹配筛选对人们的工作和生活大有裨益,例如在服务领域,可以通过对客服的服务内容进行关键字匹配,从而简便地监测其服务质量;在网络安全领域,可以将用户行为序列与异常行为序列进行匹配,实现对异常用户的检测和拦截。AC自动机(Aho-Corasickautomaton)是一种常用的多模匹配方法,可以在待匹配字符串中对多个目标字符串进行并行匹配,其在搜索引擎、词频统计等领域得到了广泛的应用。
技术实现思路
为克服相关技术中存在的问题,本公开提供一种字符串匹配方法,装置,存储介质及电子设备。根据本公开实施例的第一方面,提供一种字符串匹配方法,包括:加载第一待匹配字符串;获取多模式匹配AC自动机的节点元素在所述第一待匹配字符串中的位置信息,和所述节点元素在所述AC自动机上所处的节点位置关系,所述AC自动机是根据字符串的预定匹配规则生成的;根据所述位置信息和所述节点位置关系构建跳表;深度优先遍历所述AC自动机,并根据所述跳本文档来自技高网...

【技术保护点】
1.一种字符串匹配方法,其特征在于,包括:加载第一待匹配字符串;获取多模式匹配AC自动机的节点元素在所述第一待匹配字符串中的位置信息,和所述节点元素在所述AC自动机上所处的节点位置关系,所述AC自动机是根据字符串的预定匹配规则生成的;根据所述位置信息和所述节点位置关系构建跳表;深度优先遍历所述AC自动机,并根据所述跳表分别获取各目标节点与所述目标节点的父节点之间的路径与所述第一待匹配字符串的第一匹配结果,所述目标节点为每次遍历到的节点;根据所述AC自动机所包括的每一路径与所述第一待匹配字符串的第一匹配结果,输出所述第一待匹配字符串与所述预定匹配规则的匹配结果。

【技术特征摘要】
1.一种字符串匹配方法,其特征在于,包括:加载第一待匹配字符串;获取多模式匹配AC自动机的节点元素在所述第一待匹配字符串中的位置信息,和所述节点元素在所述AC自动机上所处的节点位置关系,所述AC自动机是根据字符串的预定匹配规则生成的;根据所述位置信息和所述节点位置关系构建跳表;深度优先遍历所述AC自动机,并根据所述跳表分别获取各目标节点与所述目标节点的父节点之间的路径与所述第一待匹配字符串的第一匹配结果,所述目标节点为每次遍历到的节点;根据所述AC自动机所包括的每一路径与所述第一待匹配字符串的第一匹配结果,输出所述第一待匹配字符串与所述预定匹配规则的匹配结果。2.根据权利要求1所述的方法,其特征在于,所述获取AC自动机的节点元素在所述第一待匹配字符串中的位置信息包括:获取每一所述节点元素在所述第一待匹配字符串中的位置信息;根据所述位置信息生成对应每一所述节点元素的位置信息集合,其中,所述位置信息用于表明所述AC自动机中的每一节点元素在所述第一待匹配字符串中出现的先后顺序;所述根据所述位置信息和所述节点位置关系构建跳表包括:根据所述位置信息集合建立对应每一所述节点元素的链表索引;根据所述AC自动机中用于表征同一匹配规则的节点元素集合中节点元素之间的层次关系和所述链表索引,构建所述跳表,其中,在所述跳表中,子节点的链表索引为父节点链表索引的跳表下层。3.根据权利要求2所述的方法,其特征在于,所述深度优先遍历所述AC自动机,并根据所述跳表分别获取各目标节点与所述目标节点的父节点之间的路径与所述第一待匹配字符串的第一匹配结果包括:当遍历到所述AC自动机中的第一层的节点时,依次对所述第一层的节点的节点元素对应的链表索引中的位置信息添加标记,其中,所述第一层节点的节点元素对应的链表索引中已标记的位置信息作为查找跳表的初始位置信息;当遍历到所述AC自动机的第一层以下的节点时,将所述第一层以下的节点作为目标节点;若通过查找所述跳表的方式,确定存在目标位置信息,则确定所述目标节点的父节点与所述目标节点之间的路径与所述第一待匹配字符串的匹配成功,其中,所述目标位置信息为所述目标节点的节点元素对应的链表索引中,晚于所述目标节点的父节点的节点元素对应的链表索引中最新被标记的位置信息的位置信息;将所述目标位置信息添加标记,其中,已标记的所述目标位置信息为当遍历到所述目标节点的子节点时,开始查找所述跳表的起始位置信息。4.根据权利要求1至3任一项所述的方法,其特征在于,所述加载第一待匹配字符串包括:加载第二待匹配字符串;过滤掉所述第二待匹配字符串中非所述AC自动机节点元素的部分,得到所述第一待匹配字符串。5.根据权利要求1至3中任一项所述的方法,其特征在于,所述第一待匹配字符串用于表征用户行为,所述匹配规则为用户异常行为匹配规则;所述根据所述AC自动机所包括的每一路径与所述第一待匹配字符串的第一匹配结果,输出所述第一待匹配字符串与所述预定匹配规则的匹配结果,包括:在所述AC自动机所包括的所有路径匹配成功后,输出用于表征用户行为异常的匹配结果。6.一种字符串匹配装置,其特征在于,包括:载入模块,被配置为加载第一待匹配字符串;第一获取模块,被配置为获取AC自动机的节点元素在所述第一待匹配字符串中的...

【专利技术属性】
技术研发人员:郭志良李加佳
申请(专利权)人:北京小米移动软件有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1