Регулярное выражение для адресов в разреженных / неверных данных - PullRequest
0 голосов
/ 05 мая 2018

У меня длинный файл, который был искажен при помощи 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 голосов
/ 05 мая 2018

Имя Regex: (?<=NAME,\s)([A-Za-z&\s]*?)(?=\"|\s+\d) Демо

Адрес Regex: \d+\s?[A-Za-z][\w\s]+[\w]+(?:\d{5})? Демо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...