我已经看了几个bitap算法的实现,但他们所做的就是找到模糊匹配的起点。我需要的是找到一个匹配。有一个例子:
假设我们有以下文字:abcdefg
和模式:bzde
我们希望在文本中找到一个模式的所有出现,最多只有1个错误(编辑距离是合并的)。
所以我需要算法返回:bcde。
有一种简单(或不简单=))的方法吗? 关于这个算法的原始艺术并没有回答这个问题。
感谢您的帮助。
答案 0 :(得分:1)
对于一个简单的开始,您可以使用一系列正则表达式来处理它,其中在每个表达式中,您使用.
通配符替换1个字符。使用( | )
构造将这些表达式组合成一个表达式来创建一个大的正则表达式。
另一种方法是扫描字符串,保留错误数量,并在遇到太多错误时增加匹配的偏移量。