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

如何用Python提取文本中重复标记间的多行文本并按独立索引存储?

解决方法:将多段匹配内容存入列表的独立索引

你的问题出在对re.findall()返回值的处理上:

  • re.findall()本身就会返回一个包含所有匹配片段的列表(比如找到3段内容的话,parts就是[片段1, 片段2, 片段3])
  • 但你用了s.append(parts),相当于把整个列表作为单个元素塞进了s,导致s变成嵌套列表[[片段1,片段2,片段3]],所有数据都集中在第一个索引里。

修改后的代码

import re

# 初始化空列表
target_list = []
with open('mytextfile.txt', 'r') as file:
    full_text = file.read()
    # 编译正则表达式,DOTALL模式允许.匹配换行符
    pattern = re.compile(r"start of my data(.*?)end of my data", re.DOTALL)
    # findall直接返回所有匹配的片段组成的列表
    matched_segments = pattern.findall(full_text)
    # 直接将匹配结果赋值给目标列表,每个片段对应独立索引
    target_list = matched_segments
    
    # 可选优化:去除每个片段前后的空白字符(换行、空格等)
    # target_list = [seg.strip() for seg in matched_segments]

效果说明

修改后target_list的每个索引对应一段独立的匹配内容:

  • target_list[0]是第一段start of my data到end of my data之间的内容
  • target_list[1]是第二段匹配内容,以此类推

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 23:45:29