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

使用pdftotext提取PDF文本后如何用正则提取Account Number字段

正则匹配失败原因

你使用的正则^(Account\s+Number).*$默认下,Python的re模块中^仅匹配整个字符串的起始位置,$仅匹配整个字符串的结束位置。而Account Number对应的行在你的整段文本中间,所以无法匹配。

实现方案

你可以通过添加正则匹配标志、调整正则规则两种方式解决,两种方式都可以直接提取到账号值:

方法1:添加多行匹配标志

给正则添加re.MULTILINE标志,让^和$可以匹配每一行的起止位置,同时用捕获组提取冒号后的账号内容,示例代码如下:

import re

# data为你已经提取到的整段PDF文本
match_res = re.search(r'^Account\s+Number\s*:\s*(\d+)', data, flags=re.MULTILINE)
if match_res:
    # 提取捕获组中的账号内容
    account_num = match_res.group(1)
    print(account_num) # 输出结果:00000031873583221

规则说明:

  • \s*匹配字段名、冒号前后的任意空白字符,兼容PDF提取后可能出现的多空格、制表符排版问题
  • (\d+)捕获冒号后的连续数字,即目标账号
  • 如果账号存在非数字字符,可以把\d+替换为.*,同时在末尾加$,即正则写为r'^Account\s+Number\s*:\s*(.*)$',即可捕获整行冒号后的所有内容。

方法2:去掉行匹配限制

如果不需要严格匹配行开头,可以直接简化正则,无需额外标志即可匹配:

import re

match_res = re.search(r'Account\s+Number\s*:\s*(\d+)', data)
if match_res:
    account_num = match_res.group(1)

这种方法适合确认文本中只会出现一次Account Number字段的场景,写法更简洁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 23:06:00