使用Python Regex从字符串中提取门牌号和街道名称

问题描述

希望这是您要寻找的:

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

解决方法

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

例如:123 Main St-> [‘123’,’Main St’]

由于我的某些街道字符串将带有连字符的街道地址,因此情况变得有些复杂,在这种情况下,我想将第一个数字放在连字符之前。

例如:123-127 Main St-> [‘123’,’Main St’]

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

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

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

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

谢谢您的帮助!

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

1)第五街123-127

2)123 1/2第五街

3)第五街123和125

在所有这三种情况下,结果应为123 5thSt。