2016-04-24 3 views
2

Python's new regex module поддерживает нечеткое соответствие строк. Пойте вслух (сейчас).Как найти лучшее совпадение с нечеткой строкой?

согласно документации:

ENHANCEMATCH флаг делает нечеткого соответствия попытки улучшить подходят следующего матча, который он находит.

BESTMATCH флаг делает нечеткий поиск совпадения для наилучшего совпадения вместо следующего матча

ENHANCEMATCH флаг устанавливается с помощью (?e) как в

regex.search("(?e)(dog){e<=1}", "cat and dog")[1] возвращается «собака»

, но на самом деле ничего не установлено BESTMATCH флаг. Как дела?

ответ

2

DocumentationBESTMATCH Функциональность флага частичная (но улучшающая). 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' 
Смежные вопросы