我有一个文本文件,其中包含大量未结构化数据,我试图使用1个正则表达式提取名称和出生日期。目前遇到的难题是日期可能会在一行结束并在另一行继续,而re.DOTALL似乎无法工作。我想要的数据格式始终为:
姓氏,中间名(有时),名字,f. DD-MM-YYYY
这是我的正则表达式:
re.findall(r'\w+,*\sf\.\s\d\d-\d\d-\d\d\d\d', re.DOTALL):
以下内容不换行:
Smith, John,
f. 25-12-1990
或者只有下面的一部分:
Smith, John, f. 25-12-
1990
Smith, John, f. 25-
12-1990
\r?\n(?![A-Z])
的匹配替换为空字符串来清理数据。这将替换除大写字母(姓氏开头)后面的所有换行符。(?![A-Z])
是一个负向先行断言。 - Cary Swoveland