Python 的新正则表达式模块支持模糊字符串匹配。大声赞美(现在)。
根据文档:
该
ENHANCEMATCH
标志进行模糊匹配尝试以提高它找到的下一个匹配的拟合度。该
BESTMATCH
标志使模糊匹配搜索最佳匹配而不是下一个匹配
使用asENHANCEMATCH
设置标志(?e)
regex.search("(?e)(dog){e<=1}", "cat and dog")[1]
返回“狗”
但实际上设置BESTMATCH
标志并没有什么。它是怎么做的?
Python 的新正则表达式模块支持模糊字符串匹配。大声赞美(现在)。
根据文档:
该
ENHANCEMATCH
标志进行模糊匹配尝试以提高它找到的下一个匹配的拟合度。该
BESTMATCH
标志使模糊匹配搜索最佳匹配而不是下一个匹配
使用asENHANCEMATCH
设置标志(?e)
regex.search("(?e)(dog){e<=1}", "cat and dog")[1]
返回“狗”
但实际上设置BESTMATCH
标志并没有什么。它是怎么做的?
关于标志功能的文档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'