猿问

正则表达式在忽略某些行的同时提取单词之前的数字

我正在尝试使用Python和pdf2text从我收到的要打印和邮寄的4000个单页PDF文件中提取邮政编码-不幸的是,我无权访问原始文件,因此在创建文件时无法进行调整。


我的最终目标是使用Postalcode_ExistingFilename.pdf重命名所有PDF文件,以便可以对邮政网络进行排序。我还需要将同一位客户的PDF合并到一个文件中,但这是另一个问题。


在PDF中,我们有“亲爱的”一词,邮政编码在此之前(尽管有几行):


04 Jul 2018


Mr Sam Sample

123 Sample Street

Sample Suburb

Sample City 1234


Dear Sam

我设法使其与


(\d+)\s*Dear 

直到地址行数发生变化,导致转换为文本后,在Dear和邮政编码之间添加了一块文本。


04 Jul 2018


Mr Sam Sample

123 Sample Street

Sample City 1234


PO Box 1234

Sample City

Phone: 01234567

Fax: 01234568

Email: email@email.com

Website: email.com


Dear Sam

我试图从顶部开始进行此工作,并查找前4位数字(不包括)2018,但是任何4位街道号都被匹配了,这不是我想要的。


您可以提供的任何建议都很棒。


临摹微笑
浏览 211回答 2
2回答

aluckdog

在不包含日期的行(即以数字开头的行)上,尝试在行尾匹配4位数字是怎么回事?import rere.findall(r'^[^\d].*?\s+(\d{4})\s*$', data, re.MULTILINE)# ['1234']
随时随地看视频慕课网APP

相关分类

Python
我要回答