【发布时间】:2018-05-04 22:14:36
【问题描述】:
我有一个很长的文件,它被 OCR/conversion 破坏了,一般看起来像这样......
-------------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)
但我没有成功提取此信息。充其量是片面的和不准确的。它不需要完美,但我想将大部分数据转换成更好的形式。有人可以帮忙吗?
【问题讨论】:
-
你说你得到了部分和不准确的数据,但第一个正则表达式甚至没有编译。
-
名称正则表达式:
(?<=NAME,\s)([A-Za-z&\s]*?)(?=\"|\s+\d)Demo