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

Python正则提取带空格变体的1.x编号列表项对应文本

正则提取解决方案

问题分析

你需要提取所有形如1.1、1 . 3这类编号后的文本,原正则因为依赖“编号+内容+编号”的匹配逻辑,导致最后一个编号后的内容无法捕获,且中间部分匹配不完整。

修正后的正则方案

使用正向预查来匹配编号后的内容,同时兼容编号中任意空格的变体:

import re

text = "some text before pattern 1.1 text_1_here  1.2 text_2_here  1 . 3 text_3_here  1. 4 text_4_here  1 .5 text_5_here 1.10 last_text_here 1.23 text after pattern"
result = re.findall(r'1\s*\.\s*\d+\s*(.*?)(?=\s*1\s*\.\s*\d+|$)', text)
print(result)

正则规则拆解

  • 1\s*\.\s*\d+:匹配编号部分,\s*允许.前后出现任意数量的空格,\d+匹配一位或多位数字(支持1.10这类多位数编号)
  • (.*?):非贪婪匹配编号后的文本,避免过度匹配后续内容
  • (?=\s*1\s*\.\s*\d+|$):正向预查,确保匹配到的文本后面跟着下一个编号或者文本结尾,这样就能捕获所有编号后的内容,包括最后一个编号到结尾前的文本

输出结果

运行上述代码后,输出与预期一致:

['text_1_here  ', 'text_2_here  ', 'text_3_here  ', 'text_4_here  ', 'text_5_here ', 'last_text_here  ']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 07:30:22