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

正则匹配选取符合指定条件的SCHEDULE-END完整文本块求助

匹配目标SCHEDULE-END块解决方案

正则匹配规则

启用单行(DOTALL,即.可匹配换行符)+ 多行匹配模式后,使用以下正则即可直接匹配所有符合要求的完整块:
^SCHEDULE\b.*?\n.*#\/.*E\s*\n\s*NOP\b.*?\nEND\b.*?$

规则拆解

  • ^SCHEDULE\b:锚定块的起始行,\b用于避免匹配到前缀为SCHEDULE的其他无关行
  • .*?:非贪婪匹配SCHEDULE行之后,到目标行对之前的所有块内内容,防止跨块匹配
  • \n.*#\/.*E\s*\n\s*NOP\b:精准匹配要求的行对:前一行包含#/且以E结尾,下一行是仅含NOP(允许前后带空格/缩进)的行
  • .*?:非贪婪匹配行对之后到END行之前的剩余块内内容
  • \nEND\b.*?$:锚定块的结束行,闭合整个SCHEDULE-END块

批量导出实现示例(Python)

import re

# 读取原始文件内容
with open("input.txt", "r", encoding="utf-8") as f:
    raw_content = f.read()

# 编译匹配规则
match_pattern = re.compile(
    r'^SCHEDULE\b.*?\n.*#\/.*E\s*\n\s*NOP\b.*?\nEND\b.*?$',
    flags=re.DOTALL | re.MULTILINE
)

# 提取所有符合条件的块
target_blocks = match_pattern.findall(raw_content)

# 写入到新文件,块之间用空行分隔
with open("output.txt", "w", encoding="utf-8") as f:
    f.write("\n\n".join(target_blocks))

适配调整说明

  • 若你的文本中SCHEDULE、END行前存在缩进,可将起始/结束锚定规则调整为^\s*SCHEDULE\b、\n\s*END\b.*?$
  • 原有的删除NOP行的正则可在导出后对目标块二次处理时直接使用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 06:36:04