Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 正则表达式从完成的地址中提取地址街道_Python_Regex - Fatal编程技术网

Python 正则表达式从完成的地址中提取地址街道

Python 正则表达式从完成的地址中提取地址街道,python,regex,Python,Regex,我想从完整的地址中提取(地址街)。我尝试了几个正则表达式,但它不适用于所有的地址格式 我尝试了这个正则表达式模式:(^[0-9]+[\sA-Za-z0-9]+) 但这种失败在某些情况下,可以看看这个 以下是我文件中的样本地址。我突出显示了整个地址中的地址街道部分 纽约东埃尔姆赫斯特阿斯托里亚大道9207号,邮编11369 纽约布鲁克林冲浪大道601号B公寓13N 2241西大街NORCO CA 92860 89米尔福德街纽约州布法罗14220 G-25斯普林谷路5550号。达拉斯。德克萨

我想从完整的地址中提取(地址街)。我尝试了几个正则表达式,但它不适用于所有的地址格式

我尝试了这个正则表达式模式:(^[0-9]+[\sA-Za-z0-9]+)

但这种失败在某些情况下,可以看看这个

以下是我文件中的样本地址。我突出显示了整个地址中的地址街道部分

纽约东埃尔姆赫斯特阿斯托里亚大道9207号,邮编11369
纽约布鲁克林冲浪大道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
    -单词边界

在上面提到的细节中,告诉我们什么是街道。举一个例子Hello Talha,感谢您的回复,但在上面的文本中,“601 B冲浪大道13N号公寓”是地址街道。我突出显示了AddressStreet部分,并共享了一个regex_tester链接,在这里我测试了我的regex.@RevolverRakk。请注意,它与尾随的“2605单元”或“G-25”和“13N”不匹配。也许你可以选择另一个可选的非捕获组来持有一些备选方案,但我对这些类型的addrress知之甚少,无法想出这些备选方案。
^.*?\b(?:BLVD|AVE(?:NUE)?|ST(?:REET)?|R(?:OA)?D|LANE)\b