寻找与bitap算法的模糊匹配

时间:2009-11-29 08:47:48

标签: algorithm string fuzzy-search

我已经看了几个bitap算法的实现,但他们所做的就是找到模糊匹配的起点。我需要的是找到一个匹配。有一个例子:

假设我们有以下文字:abcdefg

和模式:bzde

我们希望在文本中找到一个模式的所有出现,最多只有1个错误(编辑距离是合并的)。

所以我需要算法返回:bcde。

有一种简单(或不简单=))的方法吗? 关于这个算法的原始艺术并没有回答这个问题。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

对于一个简单的开始,您可以使用一系列正则表达式来处理它,其中在每个表达式中,您使用.通配符替换1个字符。使用( | )构造将这些表达式组合成一个表达式来创建一个大的正则表达式。

另一种方法是扫描字符串,保留错误数量,并在遇到太多错误时增加匹配的偏移量。