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

如何使用PyPDF2提取PDF匹配字符串对应span后紧跟的三位数字

解决方法

1 先修正原有代码的顺序错误

你现有代码的执行顺序有问题,PageObj 变量定义在调用它提取文本之后,会触发未定义报错,先调整执行顺序:

import re
import PyPDF2

# 初始化PDF读取对象
pdf_reader = PyPDF2.PdfFileReader(filename)
# 先获取页面对象
PageObj = pdf_reader.getPage(0) 
# 再提取页面文本
Text = PageObj.extractText()

2 调整正则规则动态提取三位数字

不需要依赖固定的span位置,直接用正则捕获组匹配your number is后紧跟的三位数字即可:

# 定义匹配规则,用括号包裹需要提取的部分形成捕获组
pattern = r'your number is (\d{3})'
ResSearch = re.search(pattern, Text)

# 提取结果,增加判空避免匹配不到时报错
if ResSearch:
    target_num = ResSearch.group(1)
    print(target_num) # 输出就是你要的三位数字,比如示例里的105
else:
    print("未匹配到目标内容")

规则说明

  • r'your number is ' 先精准匹配前缀字符串
  • \d{3} 表示匹配连续3位数字
  • 外层括号()是捕获组,匹配到的内容会单独存入group(1),直接调用即可拿到目标数字,不需要手动计算偏移量,即使PDF更新后字符串位置变化,只要前缀存在就能正常提取。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 17:00:00