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

寻求可匹配含换行及多行结构的PDF教材选择题的正则表达式

匹配PDF中多行选择题的正则表达式方案

问题场景

需要匹配PDF导出的选择题,题干可能跨多行,现有正则无法适配这种情况。示例题目结构如下:

1. What does cabotage refer to?
a. Domestic air services within a state
b. An international air carrier
c. A flight above territorial waters
d. Crop spraying
2. The Convention signed by the states relating to damage caused by foreign aircraft 
to persons and property on the ground is:
a. the Tokyo convention
b. the Rome convention
c. the Warsaw convention
d. the Paris convention.

原有正则的问题

你之前使用的\(\d+\.[^\n+]+\n(?:[ \t]*[a-zA-Z]\.[^\n]+\n)+[\s]*)\存在两个核心问题:

  • 用[^\n]+限制了题干只能是单行,无法匹配跨多行的内容
  • 多余的括号和转义符导致匹配逻辑混乱

解决方案正则

针对多行题干的场景,调整后的正则如下(需开启多行模式(m)和全局模式(g)):

^\d+\.[\s\S]+?(?=\n[ \t]*[a-zA-Z]\.)(?:\n[ \t]*[a-zA-Z]\.[^\n]+)+

正则各部分解释

  • ^\d+\.:匹配行首的题号格式(数字+英文点),多行模式下^会匹配每一行的开头
  • [\s\S]+?(?=\n[ \t]*[a-zA-Z]\.):非贪婪匹配任意字符(包括换行符),直到遇到下一行以「空格/制表符+字母+英文点」开头的选项行(正向预查,不消耗匹配内容)
  • (?:\n[ \t]*[a-zA-Z]\.[^\n]+)+:匹配一个或多个选项行,允许选项前有空格或制表符,每个选项行匹配到换行结束

效果说明

用该正则匹配示例题目时,会精准捕获两个完整题目:

  1. 包含单行题干的第1题
  2. 包含跨两行题干的第2题,以及对应的所有选项

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 11:25:35