Python 正则表达式从完成的地址中提取地址街道
我想从完整的地址中提取(地址街)。我尝试了几个正则表达式,但它不适用于所有的地址格式 我尝试了这个正则表达式模式:(^[0-9]+[\sA-Za-z0-9]+) 但这种失败在某些情况下,可以看看这个 以下是我文件中的样本地址。我突出显示了整个地址中的地址街道部分 纽约东埃尔姆赫斯特阿斯托里亚大道9207号,邮编11369Python 正则表达式从完成的地址中提取地址街道,python,regex,Python,Regex,我想从完整的地址中提取(地址街)。我尝试了几个正则表达式,但它不适用于所有的地址格式 我尝试了这个正则表达式模式:(^[0-9]+[\sA-Za-z0-9]+) 但这种失败在某些情况下,可以看看这个 以下是我文件中的样本地址。我突出显示了整个地址中的地址街道部分 纽约东埃尔姆赫斯特阿斯托里亚大道9207号,邮编11369 纽约布鲁克林冲浪大道601号B公寓13N 2241西大街NORCO CA 92860 89米尔福德街纽约州布法罗14220 G-25斯普林谷路5550号。达拉斯。德克萨
纽约布鲁克林冲浪大道601号B公寓13N
2241西大街NORCO CA 92860
89米尔福德街纽约州布法罗14220
G-25斯普林谷路5550号。达拉斯。德克萨斯州75254
乔治亚州利尔本布兰福德巷西北865号30047
273-A蒙茅斯街,新泽西州泽西市,邮编07302
新泽西州阿斯伯里公园海洋大道1501号2605单元07712
纽约州斯坦顿岛汤普金斯大道879号10305
纽约布鲁克林冲浪大道601号B11224
3301北88街威斯康星州密尔沃基53222
2012 RICHVIEW RD伊利诺伊州弗农山62864我假设地址中的第一个数字是街道号,下面的代码从字符串中提取第一个编号。我给你举个例子
str = "601 B SURF AVE APT 13N BROOKLYN NY 11224"
import regex as re
addressNo = []
addressNo.append(re.search(r'\d+', str).group())
您可以使用循环提取所有街道编号。也许下面的内容可以捕获地址的街道部分。您可以尝试将备选方案捕获到备选方案中:
^.*?\b(?:BLVD|AVE(?:NUE)?|ST(?:REET)?|R(?:OA)?D|LANE)\b
如果需要,请扩展这些选项,请参阅联机
-启动字符串锚定^
-除换行符以外的任何字符的延迟匹配,直到李>*?
-单词边界\b
-打开非捕获组:(?:
-所有当前给定的街道名称端点替代方案。BLVD|AVE(?:NUE)| ST(?:REET)| R(?:OA)| D | LANE
-关闭非捕获组)
-单词边界\b
^.*?\b(?:BLVD|AVE(?:NUE)?|ST(?:REET)?|R(?:OA)?D|LANE)\b