6

Python 的新正则表达式模块支持模糊字符串匹配。大声赞美(现在)。

根据文档:

ENHANCEMATCH标志进行模糊匹配尝试以提高它找到的下一个匹配的拟合度。

BESTMATCH标志使模糊匹配搜索最佳匹配而不是下一个匹配

使用asENHANCEMATCH设置标志(?e)

regex.search("(?e)(dog){e<=1}", "cat and dog")[1]返回“狗”

但实际上设置BESTMATCH标志并没有什么。它是怎么做的?

4

1 回答 1

7

关于标志功能的文档BESTMATCH是部分的(但正在改进)。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'
于 2016-04-24T01:58:52.067 回答