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

Python正则捕获庭审笔录文本:避免qa_type捕获小写q/a的技术问询

正则分组匹配问题解决

需求与问题

核心需求

从庭审笔录PDF提取问答/发言者对应文本,需输出字段:qa_type、page_start、page_end、line_num_start、line_num_end、qa_text,用Python结合正则实现分组提取。

当前问题

现有正则会错误捕获小写的q/a(如第275页第2行、第17行的小写a),同时需要满足:

  • Q/A仅匹配大写形式
  • 发言者头衔(Mr、Mrs.、Dr.等)支持大小写不敏感匹配,且与Q/A归入同一qa_type分组

当前正则

regex = r"(^(?P<line_num>[1-9]|1[0-9]|2[0-2])\b +)(?P<qa_type>(Q|A|Mr[\.|:]? [a-z]+|Mrs[\.|:]? [a-z]+|Ms[\.|:]? [a-z]+|Miss[\.|:]? [a-z]+|Dr[\.|:]? [a-z]+))?([\.|:|\s]+)?(?P<type_text>\b.*)|page (?P<page_num>\d{1,3})"

解决方案

调整后的正则

regex = r"(^(?P<line_num>[1-9]|1[0-9]|2[0-2])\b +)(?P<qa_type>(Q|A|(?i:Mr[\.:]? [a-z]+|Mrs[\.:]? [a-z]+|Ms[\.:]? [a-z]+|Miss[\.:]? [a-z]+|Dr[\.:]? [a-z]+)))?([\.:\s]+)?(?P<type_text>\b.*)|page (?P<page_num>\d{1,3})"

关键调整点

  1. 局部大小写不敏感修饰:用(?i:...)包裹所有头衔规则,仅让头衔部分支持大小写匹配(如Mr可匹配mr/MR),不影响Q/A的大写严格匹配。
  2. 简化字符集:将[\.|:]简化为[\.:],字符集内.无需转义,精简表达式。

额外提示

  • 匹配时可过滤qa_type为空的结果,避免无效数据。
  • 若仍有小写q/a误匹配,可在qa_type分组前增加边界校验(如\b),强化匹配准确性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 21:13:15