^
: устанавливает позицию в начале строки
\d
: соответствует цифре
+
: соответствует от одного до неограниченного времени
$
: устанавливает положение в конце строки
Таким образом, ваша строка регулярного выражения ^\d+$
будет точно соответствовать 1
или 100
и т. Д., Без дополнительных символов после нее.
Чтобы получить точное совпадение по номеру дома, попробуйте ^\d+
вместо
>>> import re
>>> element = "1 DEEPALI"
>>> z = re.match('^\d+', element)
>>> z
<_sre.SRE_Match object; span=(0, 1), match='1'>
>>> z.group(0)
'1'
>>> if z:
... print('A match is found!')
...
A match is found!
Вы можете проверить свое регулярное выражение, используя онлайн-генераторы регулярных выражений, например: https://regex101.com/
I'mне уверен, что делает ваша функция get_best_fuzzy
.Оттуда может возникнуть ошибка.