我正在使用Regex模块的“模糊匹配”功能。如何获取“匹配”的“模糊度值”,以指示模式与字符串之间的差异,就像Levenshtein中的“编辑距离”一样?我认为可以在Match对象中获取该值,但实际上并没有。官方文档也没有提到这一点。例如:
regex.match('(?:foo){e}','for')
a.captures()
告诉我匹配了单词 "for",但我想知道模糊值,这种情况下应该是 1
。
有没有办法实现?
(?:foo){e<=i}
进行重复尝试,其中你需要循环某个整数i
。第一次匹配成功时,你的i
就是莱文斯坦距离。 - Martin Ender(foo)|((?:foo){e=1})|((?:foo){e=2})
的东西,并检查哪个组匹配,如果第一个则e = 0,第二个则e = 1,以此类推。 - Qtax