kbmmw 5.10 版本中实现了一个非常好用的字符串搜索算法,即Boyer-Moore算法。

在用于查找子字符串的算法当中,BM(Boyer-Moore)算法是目前被认为最高效的字符串搜索算法,

它由Bob Boyer和J Strother Moore设计于1977年。 一般情况下,比KMP算法快3-5倍。该算法常用于文本编辑器中的搜索匹配功能,

详细的算法原理大家可以参照一下的链接研究。

字符串匹配的Boyer-Moore算法

在kbmmw 里面,我们可以直接使用就OK了。

procedure TForm1.Button1Click(Sender: TObject);
var
alltext,stext:string;
i:integer;
begin
alltext:='HERE IS A SIMPLE EXAMPLE' ;
stext:='EXAMPLE'; i:= TkbmMWBoyerMoore.SearchFor(Tencoding.UTF8.GetBytes(alltext), Tencoding.UTF8.GetBytes(stext) );   memo1.Lines.Add('BoyerMoore search:'+i.ToString);  i:= pos(stext,alltext);  memo1.Lines.Add('pos:'+i.ToString); end;

运行结果

由于第一个是按字节的,因此以0为基数,结果为17.

最新文章

  1. EL与Velocity基本语法总结:
  2. Bootstrap系列 -- 42. 导航条中的按钮、文本和链接
  3. python2 到 python3 转换工具 2to3
  4. ubuntu mysql emma中文乱码问题解决
  5. 爬虫---request+++urllib
  6. The main difference between Java & C++(转载)
  7. C#集合实现接口一览表
  8. BZOJ4129: Haruna’s Breakfast
  9. Qt修改xml文件
  10. POJ 1988
  11. DBCONN
  12. Android 属性动画(二)
  13. vector作为参数的三种传参方式
  14. 剑指架构师系列-持续集成之Maven实现项目的编译、发布和部署
  15. 小强的HTML5移动开发之路(20)——HTML5 Web SQL Database
  16. mybatis 保存对象 参数类型
  17. [转]mysql和redis的区别
  18. [django]django model的查询和更新
  19. JS DOM操作(四) Window.docunment对象——操作内容
  20. BCB ERROR:[Linker Error] 'XXX.LIB' contains invalid OMF record, type 0x21 (possibly COFF)

热门文章

  1. Datagrip 2017.2 激活
  2. 【可持久化0/1Trie】【P4735】最大异或和
  3. ZROI 暑期高端峰会 A班 Day1 组合计数
  4. 基于AOP的插件化(扩展)方案
  5. 安装goimports
  6. 2019年上海市大学生网络安全大赛两道misc WriteUp
  7. stop容器,把信号量传给java进程,优雅退出
  8. 学习spring源码-可参考的资料
  9. spark 资源动态分配
  10. Python 3.X 练习集100题 01