Python的new regex module支持模糊字符串匹配。唱歌(现在)大声赞美。
根据文档:
ENHANCEMATCH
标志使模糊匹配尝试改善拟合 它找到的下一场比赛。
BESTMATCH
标志使模糊匹配搜索最佳匹配 而不是下一场比赛
使用ENHANCEMATCH
设置(?e)
标志,如
regex.search("(?e)(dog){e<=1}", "cat and dog")[1]
返回“dog”
但实际上没有设置BESTMATCH
标志。怎么做的?
答案 0 :(得分:5)
BESTMATCH
标志功能上的 Documentation是部分(但正在改进)。 Poke-n-hope显示BESTMATCH
是使用(?b)
设置的。
>>> import regex
>>> regex.search(r"(?e)(?:hello){e<=4}", "What did you say, oh - hello")[0]
'hat d'
>>> regex.search(r"(?b)(?:hello){e<=4}", "What did you say, oh - hello")[0]
'hello'