【技术实现步骤摘要】
NFA状态关系式的构建方法、字符串处理方法及装置
本专利技术涉及文本搜索
,尤其涉及一种NFA状态关系式的构建方法、字符串处理方法及装置。
技术介绍
在网络包检测
中,需要对网络包中的字符进行搜索匹配,以达到对网络包的安全判断。一般采用正则表达式匹配,先将正则表达式编译为NFA(非确定有穷自动机)。然后,如果内存空间和执行时间允许,再将NFA转换为DFA(确定有穷自动机)。最后,根据匹配模式(“子串搜索”和“全文匹配”),执行匹配任务。但目前进行字符串匹配处理时,匹配速度较慢,无法实现快速完成对网络包的安全检测。
技术实现思路
针对现有技术存在的问题,本专利技术实施例提供一种NFA状态关系式的构建方法、字符串处理方法及装置。第一方面,本专利技术实施例提供一种NFA状态关系式的构建方法,包括:获取用于进行字符串匹配的正则表达式;对所述正则表达式进行编译获得NFA状态关系式,对NFA状态关系式进行前缀,和/或后缀优化处理,获得优化后的NFA状态关系式。进一步地,所述 ...
【技术保护点】
1.一种NFA状态关系式的构建方法,其特征在于,包括:/n获取用于进行字符串匹配的正则表达式;/n对所述正则表达式进行编译获得NFA状态关系式,对NFA状态关系式进行前缀,和/或后缀优化处理,获得优化后的NFA状态关系式。/n
【技术特征摘要】
1.一种NFA状态关系式的构建方法,其特征在于,包括:
获取用于进行字符串匹配的正则表达式;
对所述正则表达式进行编译获得NFA状态关系式,对NFA状态关系式进行前缀,和/或后缀优化处理,获得优化后的NFA状态关系式。
2.根据权利要求1所述的NFA状态关系式的构建方法,其特征在于,所述对NFA状态关系式进行前缀,和/或后缀优化处理,获得优化后的NFA状态关系式,包括:
获取NFA状态关系式的头部状态信息和非头部状态信息,根据所述头部状态信息和非头部状态信息对NFA状态关系式进行前缀优化;和/或,
获取NFA状态关系式的尾部状态信息和非尾部状态信息,根据所述尾部状态信息和非尾部状态信息对NFA状态关系式进行后缀优化;
基于经前缀优化处理后的NFA状态关系式,和/或经后缀优化处理后的NFA状态关系式,获得优化后的NFA状态关系式。
3.根据权利要求2所述的NFA状态关系式的构建方法,其特征在于,所述获取NFA状态关系式的头部状态信息和非头部状态信息,根据所述头部状态信息和非头部状态信息对所述NFA状态关系式进行前缀优化,包括:
获取所述NFA状态关系式的头部状态信息,所述头部状态信息包括头字符类型、输入空跳转边列表和输出空跳转边列表;
获取所述NFA状态关系式的非头部状态信息,所述非头部状态信息包括输入空跳转边列表和区间跳转边列表;
确定所述头字符类型为非限定开头,则头部状态信息增设区间跳转边;
确定所述头部状态信息的输入空跳转边列表不存在空跳转边时,根据所述头部状态信息的输出空跳转边列表确定对应的非头部状态信息;
确定所述非头部状态信息的输入空跳转边列表有且只有一条空跳转边,以及确定所述非头部状态信息的区间跳转边列表有且只有一条区间跳转边且区间跳转边包含所有字符集,则删除区间跳转边,使所述非头部状态信息对应的非头部状态与所述头部状态信息对应的头部状态合并,以完成前缀优化。
4.根据权利要求2所述的NFA状态关系式的构建方法,其特征在于,所述获取NFA状态关系式的尾部状态信息和非尾部状态信息,根据所述尾部状态信息和非尾部状态信息对NFA状态关系式进行后缀优化,包括:
获取所述NFA状态关系式的尾部状态信息,所述尾部状态信息包括输出非自身空跳转边列表、输出非自身跳转边列表、区间跳转边和输入空跳转边列表;
获取所述NFA状态关系式的非尾部状态信息,所述非尾部状态信息包括输入空跳转边列表...
【专利技术属性】
技术研发人员:王彬,覃永靖,程诗尧,马江波,
申请(专利权)人:奇安信科技集团股份有限公司,网神信息技术北京股份有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。