You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python+PyPDF2提取PDF文本中字母后紧跟的6位数字?

嘿,这个问题用正则表达式来解决最顺手不过了!你之前用切片和列表操作搞不定很正常,因为这种带特定模式的文本提取,正则才是专门干这个的工具。

解决方案:用正则表达式提取目标文本组合

步骤1:明确匹配模式

我们需要定位的是单个字母(大小写均可)紧跟6位数字的组合,对应的正则模式是:[A-Za-z]\d{6}

  • [A-Za-z]:匹配任意一个大小写英文字母
  • \d{6}:精准匹配连续的6位数字(\d代表数字,{6}表示必须正好匹配6次)

如果你的需求里只需要大写字母开头的组合(比如你例子里的A开头),可以把模式改成:[A-Z]\d{6}

步骤2:结合PyPDF2的完整代码实现

先导入正则模块re,再结合你已有的PyPDF2文本提取逻辑,代码如下:

import re
from PyPDF2 import PdfReader

# 用PyPDF2提取PDF文本到text变量
reader = PdfReader("你的PDF文件路径.pdf")
extracted_text = ""
for page in reader.pages:
    extracted_text += page.extract_text()

# 提取所有符合模式的组合
target_matches = re.findall(r'[A-Za-z]\d{6}', extracted_text)

# 查看结果
print(target_matches)

测试示例字符串

用你给出的测试字符串验证效果:

test_str = "A12345612341234 asdfa we'a aslkfj4353 alsdfasA345678asA858585943"
matches = re.findall(r'[A-Za-z]\d{6}', test_str)
print(matches)  # 输出: ['A123456', 'A345678', 'A858585']

完全符合你想要的提取结果!

补充说明

  • 如果不需要小写字母开头的组合,把正则模式换成[A-Z]\d{6}即可
  • re.findall()会返回所有匹配到的结果列表,方便你后续做存储、筛选等操作

内容的提问来源于stack exchange,提问作者Winget

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 04:16:21