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

如何使用regex正则表达式提取文本中---分隔符后的指定段落内容

实现方案

核心思路

你原有正则逻辑过于复杂,且没有正确处理内容边界和前置垃圾文本过滤。我们直接定位---分隔符后的内容,通过正向预查限定内容的结束边界,自动过滤掉前置无效内容。

正则说明

使用的正则表达式为:r'---\n(.*?)(?=\n\( \d{4}-\d{2}-\d{2}|\Z)',搭配re.DOTALL标志实现跨行匹配:

  • ---\n:精准匹配分隔符及后续换行,定位内容起始位置
  • (.*?):非贪婪匹配所有字符,作为提取结果的唯一分组
  • (?=\n\( \d{4}-\d{2}-\d{2}|\Z):正向预查,匹配到下一个时间行开头或者文本末尾就停止,避免包含后续的时间、标识等无关内容

完整代码示例

import re

# 替换为你的原始文本变量
raw_text = "你的原始文本内容"

# 提取结果
paragraphs = re.findall(r'---\n(.*?)(?=\n\( \d{4}-\d{2}-\d{2}|\Z)', raw_text, flags=re.DOTALL)

# 可选:去除每个段落前后的空白换行
clean_paragraphs = [para.strip() for para in paragraphs]

# 输出结果,clean_paragraphs 就是所有---后的段落列表
print(clean_paragraphs)

效果说明

运行后你将得到一个列表,每个元素对应一个---后的段落内容,自动忽略了所有前置的无效垃圾文本,不需要额外做过滤处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 21:54:03