我试图在账单扫描中查找、提取和清理地址。地址以字符串开头,例如"地址:|地址 |等"和结尾 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)