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

如何用正则按序匹配关键词提取PDF文档页数?

提取PDF页数的正则表达式解决方案

完全可以通过按顺序匹配/Type /Pages、中间任意内容、/Count后提取数字的思路来实现,这刚好能适配你给出的两种场景。

适配两种场景的正则表达式

/\/Type\s+\/Pages\s+(?:(?!>>).)*?\/Count\s+(\d+)/s

正则拆解(针对你的场景)

  • \/Type\s+\/Pages:精准匹配/Type /Pages,\s+兼容换行、空格、制表符等任意空白,适配不同PDF的排版格式
  • (?:(?!>>).)*?:非贪婪匹配/Type /Pages到/Count之间的所有内容,但不会跨越PDF页面对象的闭合标记>>,避免误匹配其他区域的内容
  • \/Count\s+(\d+):匹配/Count后的数字,(\d+)会将页数数字捕获为分组,直接提取即可
  • /s修饰符:让正则中的.能匹配换行符,适配多行的PDF缓冲区内容

验证你的两个示例

  1. 第一个示例中,正则会匹配到/Type /Pages后,跳过/Kids[4 0 R 8 0 R]前的内容,精准捕获/Count后的数字2
  2. 第二个示例中,会自动跳过中间的/MediaBox [ 0 0 612 792 ]内容,捕获/Count后的数字22

额外提示

如果遇到部分PDF中/Count值是间接引用(比如/Count 3 0 R),可以把正则中的(\d+)调整为(\d+(?:\s+\d+\s+R)?),就能兼容这种情况,但针对你当前的场景,基础版本已经足够用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 20:25:01