我需要对大量字符串(每对之间)进行文本匹配,并找到重叠的子序列。我想知道knuth morris pratt算法是否最适合这项工作,考虑到我想要这个功能Python和它应该可以扩展一大串字符串?我正在寻找建议,如果这是最好的方式,还是有更好的方法来进行可扩展和高效的字符串匹配?
答案 0 :(得分:0)
TL; DR:可扩展+高效= RegEx。
首先,我建议您阅读:Regular Expression Matching Can Be Simple And Fast。
RegEx 可能是最具扩展性的解决方案,因为它不仅可以进行匹配,还可以提供群组捕获和反向引用。
此外,Python的re
模块是用C语言编写的,并且可能比你用Python编写的大多数代码都要快。
对于简单的子字符串搜索,您可以使用Knuth-Morris-Pratt算法,但是当涉及到真实世界的单词和短语(不那么重复)时,您会发现 RegEx 更好平均而言。