首页 > 编程 > PHP > 正文

PHP实现的字符串匹配算法示例

2020-03-24 18:55:15
字体:
来源:转载
供稿:网友
这篇文章主要介绍了PHP实现的字符串匹配算法,简单描述了sunday算法的概念与原理,并结合实例形式分析了php基于sunday算法实现字符串匹配操作相关技巧,需要的朋友可以参考下

本文实例讲述了PHP实现的字符串匹配算法————sunday算法。分享给大家供大家参考,具体如下:

Sunday算法是Daniel M.Sunday于1990年提出的字符串模式匹配。其核心思想是:在匹配过程中,模式串发现不匹配时,算法能跳过尽可能多的字符以进行下一步的匹配,从而提高了匹配效率。

 ?php *@param $pattern 模式串 *@param $text 待匹配串function mySunday($pattern = ,$text = ){ if(!$pattern || !$text) return false; $pattern_len = mb_strlen($pattern); $text_len = mb_strlen($text); if($pattern_len = $text_len) return false; $i = 0; for($i = 0; $i $pattern_len; $i++){ //组装以pattern中的字符为下标的数组 $shift[$pattern[$i]] = $pattern_len - $i; while($i = $text_len - $pattern_len){ $nums = 0; //匹配上的字符个数 while($pattern[$nums] == $text[$i + $nums]){ $nums++; if($nums == $pattern_len){ return The first match index is $i/n  if($i + $pattern_len $text_len isset($shift[$text[$i + $pattern_len]])){ //判断模式串后一位字符是否在模式串中 $i += $shift[$text[$i + $pattern_len]]; //对齐该字符 }else{ $i += $pattern_len; //直接滑动pattern_len位$text = I am testing mySunday on sunday! $pattern = sunday echo mySunday($pattern,$text);

运行结果:

The first match index is 25

您可能感兴趣的文章:

PHP实现的最大正向匹配算法示例讲解

PHP性能分析工具xhprof的安装使用与相关的注意事项

php封装db类连接sqlite3数据库的方法实例讲解

以上就是PHP实现的字符串匹配算法示例的详细内容,PHP教程

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表