Skip to main content
 首页 » 编程设计

python之使用 Python 正则表达式从字符串中提取门牌号和街道名称

2025年05月04日24hnrainll

我是 Regex 的新手,我正在尝试使用它来将地址解析为门牌号和街道。

示例:主街 123 号 --> ['123', '主街']

由于我的一些街道字符串将包含带连字符的街道地址,这让事情变得有点复杂,在这种情况下,我想在连字符之前取第一个数字。

示例:123-127 Main St --> ['123', 'Main St']

最后,我需要能够处理以数字开头的街道名称。

最复杂的示例是:123-127 3rd Ave --> ['123', '3rd Ave']

到目前为止,我已经能够提取街道号码,包括在带连字符的情况下,但我不确定如何提取匹配街道号码模式后出现的街道名称。

MyString='123-127 Main St' 
StreetNum=digit=re.findall('(^\d+)', MyString) 

感谢您的帮助!

我还在编辑问题以指出破折号不是唯一可以用两个数字分隔街道的字符。数据中总共出现了三种情况:

1) 123-127 第五街

2) 123 1/2 第五街

3) 123 & 125 第五街

在所有这 3 种情况下,结果都应该是 123 5th St.

请您参考如下方法:

希望这就是您要找的:

(\d+).*?\s+(.+)