如何获得“匹配”的“模糊值”,表明模式与字符串有多么不同,就像Levenshtein中的“编辑距离”一样?
我以为我可以在Match对象中获取值,但它不存在.官方文件也没有提及任何相关内容.
例如.:
regex.match('(?:foo){e}','for')
a.captures()告诉我“for”这个词是匹配的,但是我想知道模糊值,在这种情况下应该是1.
有没有办法实现这一目标?
解决方法>>> import difflib>>> matcher = difflib.SequenceMatcher(None,'foo','for')>>> sum(size for start,end,size in matcher.get_matching_blocks())2>>> max(map(len,('foo','for'))) - _1>>>>>>>>> matcher = difflib.SequenceMatcher(None,'food')>>> sum(size for start,size in matcher.get_matching_blocks())3>>> max(map(len,'food'))) - _1
http://docs.python.org/2/library/difflib.html#difflib.SequenceMatcher.get_matching_blocks
http://docs.python.org/2/library/difflib.html#difflib.SequenceMatcher.get_opcodes
以上是内存溢出为你收集整理的Python“正则表达式”模块:模糊值全部内容,希望文章能够帮你解决Python“正则表达式”模块:模糊值所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)