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

如何在Python读取PDF后提取11位特定格式数字

解决方案

要提取PDF中符合指定格式的11位数字(含分隔符或纯数字形式),你需要修改正则表达式,精准匹配目标模式:

修改后的代码

from PyPDF2 import PdfReader
import re

reader = PdfReader(r"\\abcdacd.pdf")
number_of_pages = len(reader.pages)
page = reader.pages[0]
text = page.extract_text()

# 匹配两种带分隔符格式(xxx.xxx.xxx-xx / xxx.xxx.xxx.xx)及无分隔符的11位纯数字
target_numbers = re.findall(r'(?:\d{3}\.\d{3}\.\d{3}[-.]\d{2}|\d{11})', text)

# 可选:将带分隔符的数字转换为纯11位数字格式
cleaned_numbers = [re.sub(r'[-.]', '', num) for num in target_numbers]

print("原始格式匹配结果:", target_numbers)
print("纯数字格式结果:", cleaned_numbers)

代码说明

  • 正则表达式(?:\d{3}\.\d{3}\.\d{3}[-.]\d{2}|\d{11}):
    • \d{3}\.\d{3}\.\d{3}[-.]\d{2}:匹配带点和连字符的两种目标格式
    • \d{11}:匹配无分隔符的11位纯数字(应对PDF文本提取时分隔符丢失的情况)
    • (?:...)是非捕获组,用于合并多个匹配模式,避免产生额外的分组结果
  • 可选的cleaned_numbers处理:将带分隔符的结果统一转换为纯数字,方便后续使用

针对你的输出示例

运行修改后的代码,会提取出['04483203983'](原始格式),清理后得到['04483203983'],符合你需要的11位数字要求。

内容的提问来源于stack exchange,提问作者Carlos.Correia

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 12:05:42