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

正则捕获组异常:马拉卡纳固定座椅控制号提取故障

修正正则表达式提取马拉卡纳固定座椅控制号

问题分析

  1. 多号码捕获失败:原正则使用\g<NUMERO_CONTROLE_CADEIRA>子例程,但未将多号码匹配设计为可重复的捕获单元,且命名捕获组默认仅保留最后一次匹配结果,导致第二个号码无法被捕获。
  2. 号码末尾缺失:原表达式\d(\d|\s|-|–)+强制后续至少一个字符(数字/空格/连字符),当号码末尾为数字时,易被后续非数字字符(如括号)截断,丢失最后一位数字。

修正后的正则表达式

cadeiras?\s*(perpétua|cativa)?s?\s*(de|com|,)?\s*(o)?\s*(número)?\s*(de)?\s*(controle)?\s*(inicial)?\s*(de)?\s*(números?|nº)?\s*(?<NUMERO_CONTROLE_CADEIRA>\d(?:\d|\s|-|–)*\d)(?:\s*e\s*(?<NUMERO_CONTROLE_CADEIRA>\d(?:\d|\s|-|–)*\d))*

关键修改点

  • 修复号码末尾缺失:将原号码匹配逻辑\d(\d|\s|-|–)+调整为\d(?:\d|\s|-|–)*\d,确保号码以数字开头和结尾,彻底避免截断丢失最后一位;用非捕获组(?:...)优化匹配性能。
  • 支持多号码捕获:新增(?:\s*e\s*(?<NUMERO_CONTROLE_CADEIRA>...))*结构,允许匹配任意多个以葡萄牙语「e」分隔的控制号,重复命名捕获组可记录所有匹配结果(需开启PCRE引擎的全局匹配模式)。
  • 兼容文书表述:保留原正则中冗余的(de)?等结构,确保适配法律文书中不同的表述习惯,无需额外精简即可覆盖更多场景。

测试验证

针对你提供的案例:

  1. 对于文本:

O Autor é detentor do direito de uso de duas cadeiras perpétuas com o
número de controle nº 1234-123456789 e 3421 – 11111111 (Doc. 04) do
Estádio

将完整捕获两个控制号:1234-123456789和3421 – 11111111。

  1. 对于文本:

O Autor é detentor do direito de uso de uma cadeira perpétua com o
número de controle nº 4321-112223333 (Doc. 07) do Estádio Jornalista
Mário Filho

将完整捕获控制号:4321-112223333。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 22:43:08