我正在做一个地址解析项目,我需要检测地址的各个组成部分,例如城市、州、邮政编码、街道编号等。
我编写了一个正则表达式来过滤掉处理所有用户输入的邮政编码。
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。