Я использую функциональность «нечеткого соответствия» модуля Regex.Модуль «regex» Python: значение Fuzziness
Как я могу получить значение «нечеткости» «совпадения», которое указывает, насколько отличается шаблон от строки, как «расстояние редактирования» в Левенштейне?
Я думал, что могу получить значение в объекте Match, но его там нет. Официальные документы ничего не говорили об этом.
.: например
regex.match('(?:foo){e}','for')
a.captures()
говорит мне, что слово «для» подобран, но я хотел бы знать значение нечеткость, которая должна быть 1
в этом случае.
Есть ли способ достичь этого?
Это, конечно, не идеальна, но если все остальное не вы могли бы попробуйте повторить попытки с помощью '(?: foo) {e <= i}', где вы зацикливаете какое-то целое число 'i'. В первый раз, когда вы получаете матч, ваш 'i' является расстоянием Левенштейна. –
Или если вы работаете с ограниченным числом ошибок, вы можете использовать что-то вроде '(foo) | ((?: Foo) {e = 1}) | ((?: Foo) {e = 2})' и проверить какая группа соответствует, если сначала e = 0, второй e = 1 и т. д. – Qtax