[发明专利]基于带记忆确定有限自动机的正则表达式匹配加速方法无效
| 申请号: | 200710071071.0 | 申请日: | 2007-09-04 |
| 公开(公告)号: | CN101201836A | 公开(公告)日: | 2008-06-18 |
| 发明(设计)人: | 王继民;平玲娣;潘雪增;陈小平;陈健;陆魁军 | 申请(专利权)人: | 浙江大学 |
| 主分类号: | G06F17/30 | 分类号: | G06F17/30;G06F17/27 |
| 代理公司: | 杭州求是专利事务所有限公司 | 代理人: | 张法高 |
| 地址: | 310027*** | 国省代码: | 浙江;33 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 基于 记忆 确定 有限 自动机 正则 表达式 匹配 加速 方法 | ||
1.一种基于带记忆确定有限自动机的正则表达式匹配加速方法,其特征在于包括正则表达式规则编译器和模式匹配引擎,正则表达式规则编译器先把正则表达式转换为解析树,再分别把解析树转换为带记忆的非确定有限自动机和带记忆的确定有限自动机,模式匹配引擎使用编译器生成的带记忆确定有限自动机实现对模式匹配的加速。
2.根据权利要求1所述的一种基于带记忆确定有限自动机的正则表达式匹配加速方法,其特征在于所述的正则表达式规则编译器先把正则表达式转换为解析树,再分别把解析树转换为带记忆的非确定有限自动机和带记忆的确定有限自动机:借助Lex和Yacc软件实现正则表达式上下文无关文法,对正则表达式规则语法进行解析,并在解析过程中根据匹配文法建立相应相应节点类型的子树,最终形成完整的解析树;在Thompson算法支持操作符的基础上,增加重复操作符({n,m}),其对应的非确定状态机与所重复表达式的非确定状态机相同,但增加了重复范围参数,使用该算法将解析树转换为带记忆的非确定有限自动机;对于不含重复操作符的非确定有限自动机,按ε-闭包算法生成确定有限自动机,而对于含有重复操作符的非确定有限自动机,则先用带有特殊标记的简单字符替换重复操作符,按ε-闭包算法把它转换为确定有限自动机,另外单独把被替换的部分按ε-闭包算法转换为另一个确定有限自动机;解析树由对应的正则表达式经解析生成,为一种每个节点分支不超过2的树,树中非叶节点为操作符,叶子节点为字符或集合,操作符包括连接操作符(“·”)、选择操作符(“|”)、重复操作符(“{n,m}”)、Kleen闭包操作符(“*”),叶子节点是单个字符、集合、集合的补集、代表集合的字符或代表集合补集的字符,集合与补集的转义字符序列符合IEEE POSIX 1003.2标准。
3.根据权利要求1所述的一种基于带记忆确定有限自动机的正则表达式匹配加速方法,其特征在于所述的编译器:编译器以正则表达式规则文件为输入,输出正则表达式数据库,它首先对规则文件进行语法检查并把它转换为带记忆的非确定有限自动机,之后再转换为带记忆的确定有限自动机,带记忆的确定有限自动机存储在规则数据库中。
4.根据权利要求1所述的一种基于带记忆确定有限自动机的正则表达式匹配加速方法,其特征在于所述的模式匹配引擎使用编译器生成的带记忆确定有限自动机实现对模式匹配的加速:模式匹配引擎读入编译器生成的带记忆确定有限自动机和输入字符串,把输入字符串跟每个有限自动机进行匹配,匹配的位置保存在匹配上下文中;当一个有限自动机匹配完成,则根据该自动机类型确定下一步动作:如果该自动机不包含重复操作符,且没有后续自动机,则报告一个匹配;如果该自动机不包含重复操作符,但有后续有限自动机,则根据贪婪模式选项确定是否报告一个匹配,并生成一个后续有限自动机的匹配上下文;如果该自动机包含重复操作符,则增加匹配次数,并根据匹配次数决定下一步动作:如果匹配次数小于重复范围下限,则把匹配位置调整到自动机初始状态,继续匹配;如果匹配次数大于重复范围上限,则生成后续状态机的匹配上下文或报告一个匹配;如果匹配次数位于重复范围内,则把匹配位置调整到自动机初始状态,继续匹配;模式匹配引擎可以由现场可编程门阵列或专用集成电路实现,它实现了正则表达式数据库中的带记忆确定有限自动机,可接受输入数据,判断是否存在与库中正则表达式的匹配。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江大学,未经浙江大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200710071071.0/1.html,转载请声明来源钻瓜专利网。





