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

Python正则表达式匹配法条条目问题:无法关联数字条目与后续字母

正则修正与实现方案

原正则表达式将数字条目和后续的字母后缀拆分为独立匹配项,导致119/1和 C被分别捕获,无法得到预期的整体条目。以下是修正后的方案:

修正后的正则表达式

\b\d{3}/\d{1,2}(?: [A-Z])?\b

正则解析

  • \b:单词边界,避免从长字符串(如5237SA)中误匹配部分数字片段
  • \d{3}/\d{1,2}:匹配核心法条格式——3位数字+斜杠+1-2位数字
  • (?: [A-Z])?:可选非捕获组,匹配条目后可能存在的「空格+单个大写字母」后缀,?表示该部分可省略

Python代码实现

1. 提取目标法条条目

import re

raw_text = "5237SA 116/1 119/1 C 58/6 53/1 58 58/7."
target_pattern = r'\b\d{3}/\d{1,2}(?: [A-Z])?\b'

extracted_items = re.findall(target_pattern, raw_text)
print(extracted_items)  # 输出: ['116/1', '119/1 C']

2. 格式化为带括号的字符串

formatted_text = re.sub(target_pattern, r'(\g<0>)', raw_text)
print(formatted_text)  # 输出: 5237SA (116/1) (119/1 C) 58/6 53/1 58 58/7.

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 06:10:31