Получить индийские почтовые индексы из адресной строки с другими номерами - PullRequest
0 голосов
/ 11 января 2019

Я работаю над проектом по разбору адресов, где мне нужно обнаружить различные компоненты адреса, такие как город, штат, почтовый индекс, street_no и т. Д.

Я написал регулярное выражение для фильтрации почтовых индексов, обрабатывающих все пользовательские данные.

sample_add = "16th main road btm layout 560029 5-6-00-76 56 00 78 560-029 25 -000-1"
regexp = re.compile(r"([\d])[ -]*?([\d])[ -]*?([\d])[ -]*?([\d])[ -]*?([\d])[ -]*?([\d])")
print(re.findall(regexp, sample_add))

Output :- [560029, 560076, 560078, 560029, 250001]

Это позволяет идентифицировать postal_codes для таких адресов, однако, когда приходит адрес, подобный следующему, он объединяет Street nos и интерпретирует его как почтовый код,

Ex. `sample_add_2 = "House no 323/46 16th main road, btm layout, bengaluru 560029"

В этом случае почтовый индекс обозначается как 323461, а правильный - 560029 .

1 Ответ

0 голосов
/ 11 января 2019

Если я правильно понял, мы ищем 6-значное число, но оно может включать некоторые разделители, такие как - , но не \. Это должно обрабатываться. (Если нет, объясните, пожалуйста, желаемый результат):

\b(\d[\- ]*){6}\b(?<! )

https://regex101.com/r/wxYgwr/3

...