使用正则表达式从账单扫描的 OCR 输出中提取和清理'resendential address'



我试图在账单扫描中查找、提取和清理地址。地址以字符串开头,例如"地址:|地址 |等"和结尾 4 个数字(邮政编码(。

正则表达式:

possible_addresses = list(re.findall("^.ddress:[0-9]{4}", data))

地址: 10 刘易斯街, 贝里 SA 5343

假设地址占据了整行,我们可以尝试使用以下正则表达式模式:

Address: (.* d{4})

脚本:

address = "10 LEWIS ST, BERRI SA 5343"
possible_addresses = re.findall(r'Address: (.* d{4})', address)
print(possible_addresses)

如果地址可以跨越多行,或者可能与地址以外的文本共享给定行,请改用以下模式:

bAddress: (.*? d{4})b

你为什么不试试这个,如果留下任何边缘情况,请发表评论。我在下面测试了代码,它解决了您的问题。希望对您有所帮助。

import re
statement = 'Address: house number 43, 56th street, 1234'
print(re.findall("^Address:[A-Za-z0-9, ]*[0-9][0-9][0-9][0-9]", statement))
#['Address: house number 43, 56th street, 1234']

我发现下面的代码可以完美地工作。

import re
data='Service address —_Unit8-10 LEWIS St, BERRI,SA 5343'
possible_addresses = re.search('address[W_]*(.*?d{4})', data,re.I)
address = possible_addresses[1]
print('Address : ' address)

最新更新