使用Python的re.sub删除PDF文本时仅部分生效的问题求助
使用Python的re.sub删除PDF文本时仅部分生效的问题求助
我正在开发一个脚本,目标是提取PDF中的全部文本并进行后续处理。第一步我需要清理文档,删除一段特定格式的文本,但遇到了问题:使用Python的re.sub时,它只在特定位置之前的内容生效,后面的目标文本根本删不掉。有没有朋友能帮我排查一下原因?
具体来说,我要删除的文本格式是IT Certification Guaranteed, The Easy Way! (页码),但运行脚本后发现只有前面几处被成功删除,后面的依然保留在提取出的文本里。
以下是我的完整代码:
import re from pypdf import PdfReader from sys import exit # 以二进制只读模式打开PDF文件 reader = PdfReader("archivo.pdf") texto_completo = "" for page in reader.pages: texto_completo += page.extract_text() + "\n" print(texto_completo) # 删除格式为"IT Certification Guaranteed, The Easy Way! (页码)"的文本 texto_completo = re.sub(r'(?s)(?=IT Certification Guaranteed, The Easy Way!)(.*?)(\d+)', r"", texto_completo, re.MULTILINE) print(texto_completo) # 将处理后的文本写入结果文件 with open('resultado.txt', 'w') as res: res.write(texto_completo) exit()
我已经检查过正则表达式的写法,但还是没搞懂为什么只能匹配到部分内容。有没有人能指点一下怎么修改才能让所有符合格式的文本都被删除?
备注:内容来源于stack exchange,提问作者J0nZ3t4
相关产品推荐
相关产品推荐

