content ="""
Dear Customer,
Detail of service affected:
Bobs Builders
Retail park
The Aavenue
London
LDN 4DX
Start Time & Date: 04/01/2017 00:05
Completion Time & Date: 04/01/2017 06:00
Details of Work:
....
我已经用
postcodes = re.findall(r"[A-Z]{1,2}[0-9R][0-9A-Z]? [0-9][A-Z]{2}", content)
我也想从此内容中获取城市信息,这是否有可能?我是否需要首先提供城市清单?然后核对一下?
还是有办法在邮递区号之前打上电话?因为地址总是以这种方式发送.
我可以使用邮政编码正则表达式在邮政编码之前得到单词吗?
谢谢
import re
postcodes = re.findall(r"(\w+)\s+([A-Z]{3} \d[A-Z]{2})", content)
print postcodes
# => [('London', 'LDN 4DX')]
您有2组,第一个是邮政编码后的单词(可能在另一行),第二个是邮政编码本身.
邮政编码正则表达式已简化,以使示例更具可读性.
如果要匹配任何英国代码,则here是一个很好的参考.
您提到的正则表达式与LDN 4DX不匹配.添加?为[0-9R]将:
postcodes = re.findall(r"[A-Z]{1,2}[0-9R]?[0-9A-Z]? [0-9][A-Z]{2}", content)