从地址字符串中获取带有其他数字的印度邮政编码

时间:2019-01-11 13:10:35

标签: python regex nlp postal-code natural-language-processing

我正在做一个地址解析项目,在该项目中,我需要检测地址的各个组成部分,例如城市,州,邮政编码,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]

这能够识别此类地址的邮政编码,但是,当出现如下所示的地址时,它将街道编号组合起来并将其解释为邮政编码,

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

在这种情况下,邮政编码标识为323461,而正确的邮政编码应该为560029

1 个答案:

答案 0 :(得分:0)

如果我没弄清楚,我们会搜索一个6位数的数字,但是可以包含一些定界符,例如progress -,但不能包含。这应该可以处理。 (如果没有,请解释一下您想要的结果):

\

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