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

如何在PDF文本中搜索“X COAs”格式子串(X为任意整数)

解决方法:用正则精准匹配整数+COAs格式

你的问题出在只用字符串匹配“ COAs”,会把包含这个子串的整行都拿过来,没法精准提取目标格式。改用正则表达式就能完美解决,它可以精准描述“任意整数 + 空格 + COAs”的规则。

修改后的代码如下:

import pdfminer
from pdfminer.high_level import extract_text
import re  # 导入正则模块

text = extract_text(pdfpath)
linebyline = text.splitlines()
numCOAs = "ERROR: NO COA NUMBER FOUND"

for line in linebyline:
    # 匹配「一个或多个数字 + 空格 + COAs」的格式
    match = re.search(r'\d+ COAs', line)
    if match:
        # 提取完整匹配内容,比如"15 COAs"
        numCOAs = match.group()
        break

print(f"There are {numCOAs}")

关键说明:

  • re.search(r'\d+ COAs', line):\d+专门匹配1个或多个阿拉伯数字,后面跟空格和COAs,精准锁定你要的格式,不会误匹配其他包含“ COAs”的无关内容。
  • match.group():提取找到的完整匹配字符串,而不是整行内容,满足你精准定位的需求。
  • 先初始化错误值,找到匹配后再更新,避免循环中不必要的赋值覆盖,逻辑更严谨。

如果需要单独提取整数部分,可以调整正则为r'(\d+) COAs',然后通过match.group(1)拿到数字:

match = re.search(r'(\d+) COAs', line)
if match:
    coa_num = int(match.group(1))  # 转为整数类型
    numCOAs = f"{coa_num} COAs"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 02:00:09