У меня очень большой список слов (около 200 КБ):
["cat", "the dog", "elephant", "the angry tiger"]
Я создал это регулярное выражение с нечеткостью:
regex = "(cat){e<3}|(the dog){e<3}|(elephant){e<3}|(the angry tiger){e<3}"
У меня есть входные предложения:
sentence1 = "The doog is running in the field"
sentence2 = "The elephent and the kat"
...
То, что я хочу получить, это:
res1 = ["the dog"]
res2 = ["elephant", "cat"]
Я пробовал это например:
re.findall(regex, sentence2, flags=re.IGNORECASE|re.UNICODE)
Но это выводит меня:
["elephent", "kat"]
Есть идеи, как получить правильный ответ с исправленными словами? Я хочу получить группу захвата регулярных выражений для каждого матча, но я стараюсь это сделать.
Возможно, я делаю это неправильно, и, возможно, метод регулярных выражений не очень удачный, но if item in list
с циклом for
слишком длинный для выполнения.