为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

临摹微笑 2021-04-06 13:14:13
我正在尝试使用Python和pdf2text从我收到的要打印和邮寄的4000个单页PDF文件中提取邮政编码-不幸的是,我无权访问原始文件,因此在创建文件时无法进行调整。我的最终目标是使用Postalcode_ExistingFilename.pdf重命名所有PDF文件,以便可以对邮政网络进行排序。我还需要将同一位客户的PDF合并到一个文件中,但这是另一个问题。在PDF中,我们有“亲爱的”一词,邮政编码在此之前(尽管有几行):04 Jul 2018Mr Sam Sample123 Sample StreetSample SuburbSample City 1234Dear Sam我设法使其与(\d+)\s*Dear 直到地址行数发生变化,导致转换为文本后,在Dear和邮政编码之间添加了一块文本。04 Jul 2018Mr Sam Sample123 Sample StreetSample City 1234PO Box 1234Sample CityPhone: 01234567Fax: 01234568Email: email@email.comWebsite: email.comDear Sam我试图从顶部开始进行此工作,并查找前4位数字(不包括)2018,但是任何4位街道号都被匹配了,这不是我想要的。您可以提供的任何建议都很棒。
查看完整描述

2 回答

?
aluckdog

TA贡献1847条经验 获得超7个赞

在不包含日期的行(即以数字开头的行)上,尝试在行尾匹配4位数字是怎么回事?


import re

re.findall(r'^[^\d].*?\s+(\d{4})\s*$', data, re.MULTILINE)

# ['1234']


查看完整回答
反对 回复 2021-04-27
  • 2 回答
  • 0 关注
  • 205 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信