我正在做一个地址解析项目,在该项目中,我需要检测地址的各个组成部分,例如城市,州,邮政编码,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 。
答案 0 :(得分:0)
如果我没弄清楚,我们会搜索一个6位数的数字,但是可以包含一些定界符,例如progress
-
,但不能包含。这应该可以处理。 (如果没有,请解释一下您想要的结果):
\