[发明专利]一种模式匹配方法无效
申请号: | 200910195465.6 | 申请日: | 2009-09-10 |
公开(公告)号: | CN102024000A | 公开(公告)日: | 2011-04-20 |
发明(设计)人: | 郑骏;胡文心;蔡建华 | 申请(专利权)人: | 华东师范大学 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 上海科盛知识产权代理有限公司 31225 | 代理人: | 赵志远 |
地址: | 200062 上*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 模式 匹配 方法 | ||
技术领域
本发明涉及串匹配技术,特别是涉及一种模式匹配方法。
背景技术
KMP匹配方法是串匹配中效率最高的方法,它充分利用模式信息,使得模式在跟主串匹配过程中主串的指针不回溯,从而具有较高的匹配速度,并在各种领域中有广泛应用。然而,KMP方法仍存在着主串与模式多个相同字符重复比较的缺陷。
发明内容
本发明所要解决的技术问题就是为了克服上述现有技术存在的缺陷而提供一种模式匹配方法。
本发明的目的可以通过以下技术方案来实现:一种模式匹配方法,其特征在于,包括:
对匹配文本A设两个指针,模式B和模式B’分别设一个指针,匹配文本A首端和模式B首端对齐,文本A末端和模式B’末端对齐;模式B指针起始位置为模式B的首端,模式B’指针起始位置为模式B’的末端,匹配文本A两指针起始位置为文本首端和文本的末端;匹配过程中,模式B、模式B’分别和文本交替向中间匹配,当匹配过程中出现失配时,根据模式B、B’已经得到的部分匹配结果的将模式B、B’交替向中间滑动后继续比较。
该方法对模式B、B’已经得到的部分匹配结果进行Q(r)值计算,以使模式B、B’交替向中间滑动。
所述的Q(r)值计算在下式条件时:
包括以下步骤:
a1)i’=B(0),j’=0,Q(B(0))=0;
b1)若i’=1,则执行步骤d1;否则,执行步骤c1;
c1)若j’=B(0)或B(i’)=B(j’),则i’=i’-1,j’=j’-1,Q(i’)=j’,执行步骤b1;否则,j’=Q(j’),执行步骤c1;
d)结束。
所述的Q(r)值计算在下式条件时:
包括以下步骤:
a2)i=1,j=0,Q(1)=0;
b2)若i=m,则执行步骤d2;否则,执行步骤c2;
c2)若j=0或(B(i)=B(j)),则j=j+1,i=i+1,Q(i)=j,执行步骤b2;否则,j=Q(j),执行步骤c2;
d2)结束。
与现有技术相比,本发明避免了字符的重复匹配,减少了比较次数,提高了匹配效率。
具体实施方式
下面对本发明作进一步说明。
一种模式匹配方法,包括:
对匹配文本A设两个指针,模式B和模式B’分别设一个指针,匹配文本A首端和模式B首端对齐,文本A末端和模式B’末端对齐;模式B指针起始位置为模式B的首端,模式B’指针起始位置为模式B’的末端,匹配文本A两指针起始位置为文本首端和文本的末端;匹配过程中,模式B、模式B’分别和文本交替向中间匹配,当匹配过程中出现失配时,根据模式B、B’已经得到的部分匹配结果的将模式B、B’交替向中间滑动后继续比较。
该方法对模式B、B’已经得到的部分匹配结果进行Q(r)值计算,以使模式B、B’交替向中间滑动。
所述的Q(r)值计算在下式条件时:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华东师范大学,未经华东师范大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910195465.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:移动终端网页浏览时的自动对齐方法和装置
- 下一篇:电子部件供给器