用于稀疏/坏数据中的地址的正则表达式

时间:2018-05-04 22:14:36

标签: python regex search

我有一个很长的文件被OCR /转换破坏了,看起来像这样...

-------------JOE-LTO-N   ------TN---370-80 -----------------------                                                                                                              
"00900006202                 26808      NAME, IDA BELLE &  BILLY               7621 RIDGEWOOD RD GOODLETTSVILLE 37072               $298.07"                                                                                                                
"NAME, IDA BELLE 7621RIDGEWOOD RD"                                                                                                              
GOODLITTSVILLE                                                                                                              
"NAME, BILLY"                                                                                                               
7621RIDGEWOOD RD                                                                                                                
TN            37072 ....

...我正在尝试使用正则表达式提取名称/地址。

我需要提取所有符合LASTNAME,FIRSTNAME格式的数据以及与STREETNUMBER TEXT ZIPCODE格式相匹配的数据。

到目前为止,我有:

import re
import csv
exA = "ex-a.csv"
namelist = []
addlist = []
with open(exA, 'r') as exhibitA:
    lines = csv.reader(exhibitA, delimiter=",")
    namesearch = re.compile('([A-Z]+\w+, (\w*)')
    addsearch = re.compile('\d+(.*)\d{5}')
    for l in lines:
        names = namesearch.findall(str(l))
        namelist.append(names)
        adds = addsearch.findall(str(l))
        addlist.append(adds)
print(addlist)

但我没有成功提取这些信息。它充其量只是部分且不准确。它并不需要完美,但我希望将大部分数据转化为更好的形式。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

名称正则表达式:(?<=NAME,\s)([A-Za-z&\s]*?)(?=\"|\s+\d) Demo

地址正则表达式:\d+\s?[A-Za-z][\w\s]+[\w]+(?:\d{5})? Demo