У меня есть текстовый файл, из которого я пытаюсь получить имена и даты рождения, используя RegEx. Стена, на которую я натолкнулся, состоит в том, что строки могут занимать несколько строк, и мой RegEx не может захватить их все. Формат данных, которые я хочу, всегда:
фамилия, отчество (иногда), имя, f. ДД-ММ-ГГГГ
Это мой RegEx:
if re.findall(r'\w+,\s*f\s*\.\s*\d\s*\d\s*-\s*\d\s*\d\s*-\s*\d\s*\d\s*\d\s*\d', line):
Это не означает разрыв строки ниже:
Smith, John,
f. 25-12-1990
или только первый часть ниже:
Smith, John, f. 25-12-
1990
Smith, John, f. 25-
12-1990
Вот полный код:
import re
import pandas as pd
a_list = []
f = open("/Users/me/Desktop/scrape.txt", "r", encoding="utf8")
txt = f.readlines()
for k, line in enumerate(txt):
if re.findall(r'\w+,\s*f\s*\.\s*\d\s*\d\s*-\s*\d\s*\d\s*-\s*\d\s*\d\s*\d\s*\d', line):
a_list.append((k, line))
print(a_list)
#df1 = pd.DataFrame(a_list)
#df1.to_csv('C:/Users/me/Desktop/outputs.csv', index=False)
f.close()
Пример данных: