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

如何用正则捕获仅带起始模式的多段多行文本块

正则匹配方案

你可以用非贪婪匹配+正向前瞻的写法实现需求,正确正则如下:
/-{37}\s*([\s\S]*?)(?=\s*-{37}|\s*$)/gm

正则各部分说明

  • -{37}:匹配作为条目分隔符的37个连续短横线
  • \s*:匹配分隔符后多余的空白字符(包括换行、空格),避免捕获内容开头带多余空行
  • ([\s\S]*?):捕获分组,非贪婪匹配所有字符(含换行),直到触发终止条件
  • (?=\s*-{37}|\s*$):正向肯定前瞻,规定终止条件:要么后续出现带可选空白的下一组37个短横线,要么到文件末尾;前瞻不会消耗字符,不影响下一次匹配识别分隔符

如果你的正则引擎支持单行模式(s标记),可以把[\s\S]替换为.,写法更简洁:
/-{37}\s*(.*?)(?=\s*-{37}|\s*$)/gms

代码示例(以JavaScript为例)

const largeText = "你的大文本文件内容";
const entryRegex = /-{37}\s*([\s\S]*?)(?=\s*-{37}|\s*$)/gm;
const entryList = [];
let matchResult;

while ((matchResult = entryRegex.exec(largeText)) !== null) {
  // trimEnd可根据需求选择是否添加,用于移除条目末尾多余的空白
  entryList.push(matchResult[1].trimEnd());
}

最终entryList就是你需要的仅包含各条目内容的数组。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 02:36:04