[发明专利]压缩正则表达式的方法、匹配字符串的方法及装置在审
| 申请号: | 201310410575.6 | 申请日: | 2013-09-10 |
| 公开(公告)号: | CN104424329A | 公开(公告)日: | 2015-03-18 |
| 发明(设计)人: | 胡晶;翟素平 | 申请(专利权)人: | 华为技术有限公司 |
| 主分类号: | G06F17/30 | 分类号: | G06F17/30 |
| 代理公司: | 北京龙双利达知识产权代理有限公司 11329 | 代理人: | 毛威;张亮 |
| 地址: | 518129 广东*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 压缩 正则 表达式 方法 匹配 字符串 装置 | ||
1.一种压缩正则表达式的方法,其特征在于,包括:
确定正则表达式的有限自动机FA包括的所有基本状态以及所述所有基本状态之间的迁移关系;
确定所述所有基本状态中能够合并为复合状态的至少两个基本状态,其中,所述至少两个基本状态包括入态和出态,所述至少两个基本状态以所述入态为起点并以所述出态为终点依次迁移,第一基本状态的下一状态不包括第二基本状态,且当第三基本状态具有除所述依次迁移所对应的第一下一状态之外的第二下一状态时,所述第三基本状态的第二下一状态分别相同且分别在相同的标签下迁移至所述第二下一状态,所述出态也在所述相同的标签下迁移至所述第二下一状态,其中,所述第一基本状态为所述所有基本状态中除所述至少两个基本状态之外的基本状态,所述第二基本状态为所述至少两个基本状态中除所述入态之外的基本状态,所述第三基本状态为所述至少两个基本状态中除所述出态之外的基本状态;
根据所述复合状态,生成所述正则表达式的FA状态迁移表。
2.根据权利要求1所述的方法,其特征在于,所述FA状态迁移表包括所述第一基本状态的基本迁移表项和所述复合状态的复合迁移表项,其中,所述FA状态迁移表的每个迁移表项均包括匹配条件和所述匹配条件对应的下一状态。
3.根据权利要求2所述的方法,其特征在于,所述复合状态的复合迁移表项中的匹配条件为由所述至少两个基本状态中的每个基本状态迁移到所述第一下一状态时的标签依次合并而成的复合标签,所述匹配条件对应的下一状态为所述出态的第一下一状态,其中,所述出态的第一下一状态为所述出态具有的所有下一状态中除所述第二下一状态之外的下一状态。
4.根据权利要求2或3所述的方法,其特征在于,当所述第二基本状态具有所述第二下一状态时,所述FA状态迁移表还包括所述复合状态的基本迁移表项,所述基本迁移表项中的匹配条件为所述相同的标签,所述匹配条件对应的下一状态为所述第二下一状态。
5.一种匹配字符串的方法,其特征在于,包括:
获取待匹配字符串和有限状态机FA状态迁移表,所述FA状态迁移表的迁移表项包括匹配条件和所述匹配条件对应的下一状态,且所述FA状态迁移表包括基本状态的基本迁移表项和复合状态的复合迁移表项,所述复合迁移表项中的匹配条件能够与单个字符完全匹配,所述基本迁移表项中的匹配条件能够与由至少两个字符构成的字符串完全匹配;
当当前状态为非接受状态时,确定所述当前状态为基本状态或复合状态,其中,所述当前状态以FA的初始状态为起点;
当所述当前状态为复合状态时,读取所述待匹配字符串的未匹配部分的首字符;
确定所述FA状态迁移表中是否存在与所述首字符匹配的所述复合状态的基本迁移表项;
当所述FA状态迁移表中存在与所述首字符匹配的所述复合状态的基本迁移表项时,迁移至所述匹配的基本迁移表项中的下一状态。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
当所述FA状态迁移表中不存在与所述首字符匹配的所述复合状态的基本迁移表项时,确定所述FA状态迁移表中是否存在与所述首字符部分匹配的所述复合状态的复合迁移表项;
当所述FA状态迁移表中存在与所述首字符部分匹配的所述复合状态的复合迁移表项时,依次读取所述未匹配部分中的字符以获得第一字符串,其中,所述第一字符串以所述首字符为起点且长度与所述部分匹配的复合迁移表项中的匹配条件相对应;
确定所述第一字符串是否与所述部分匹配的复合迁移表项中的匹配条件完全匹配;
当所述第一字符串与所述部分匹配的复合迁移表项中的匹配条件完全匹配时,迁移至所述部分匹配的复合迁移表项中的下一状态。
7.根据权利要求6所述的方法,其特征在于,所述确定所述FA状态迁移表中是否存在与所述首字符部分匹配的所述复合状态的复合迁移表项,包括:
分别将所述首字符与所述FA状态迁移表中包括的所述复合状态的至少一个复合迁移表项中的每个复合迁移表项的匹配条件的起始部分进行匹配,以分别确定所述首字符是否与所述每个复合迁移表项部分匹配;
当所述复合状态的至少一个复合迁移表项中存在与所述首字符部分匹配的复合迁移表项时,确定所述FA状态迁移表中存在与所述首字符部分匹配的所述复合状态的复合迁移表项。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310410575.6/1.html,转载请声明来源钻瓜专利网。





