Обнаружено это поведение с нечетким соответствием:
import regex
regex.search('(?e)(AB+CD+F){e<=2}','ABCF')
regex.search('(?e)(AB+CD+F){e<=2}','ACDF')
первый поиск по регулярному выражению возвращает None
, а второй возвращает совпадение с нечетким счетом (0,0,1)
. Также заметил, что если я значительно увеличу количество допустимых ошибок, первая начнет возвращать результат, но это зависит от длины текста:
regex.search(r'(?e)(AB+CD+F){e<=5}','ABCF')
regex.search(r'(?e)(AB+CD+F){e<=5}','ABCFE')
возвращает нечеткие значения (2,0,2)
и (3,0,2)
.
Проблема исчезнет, если я изменю шаблон регулярного выражения на эквивалентный:
regex.search('(?e)(AB+CDD*F){e<=2}','ABCF')
с нечетким числом (0,0,1)
.
Это ошибка или функция?