Нечеткое совпадение с регулярным выражением - PullRequest
0 голосов
/ 12 декабря 2018

Пока это мой код:

for element in address1:
    z = re.match("^\d+$", element)

    if z:
        get_best_fuzzy("1 DEEPALI", address1)

В приведенном выше коде я пытаюсь получить соответствующие адреса в текстовом файле.Я хотел бы получить точное совпадение для номера дома с приблизительным совпадением с остаточным, скажем, 80%.Но приведенный выше код не дает мне ни вывода, ни каких-либо ошибок.

Ниже приведен пример для моих адресов:

002 TOWER NO. 7 UNIWORLD GARDEN SEC. 47 SOWA ROAD GURGAON Haryana 122001 India
002 TOWER NO. 7 UNIWORLD GARDEN SECTOR-47 SONA ROAD GURGAON Haryana 122001 India
09;SHIVALIK BUNGLAOW; ANANDNAGAR CROSS ROAD; NEAR MADHUR HALL;SATELLITE; 
AHMEDABAD Gujarat 380015 India
1 DEEPALI; PITAMPURA DELHI Delhi 110034 India
10; BRIGHTON TOWERS; CROSS ROAD NO.2; LOKHANDWALA COMPLEX; ANDHERI WEST MUMBAI Maharashtra 400053 India
100 Vaishali; Pitampura Delhi Delhi 110034 India
100 Vaishali; Pitampura; DELHI Delhi 110034 India

Пожалуйста, объясните, поскольку я новичок в этом.

1 Ответ

0 голосов
/ 12 декабря 2018

^: устанавливает позицию в начале строки

\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.Оттуда может возникнуть ошибка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...