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

如何基于数字加句号(.)分割字符串?

用正则表达式实现数字加句号分割任务字符串

你可以借助JavaScript的正则表达式精准匹配任务开头的「数字+句号+空格」模式,避免误分割任务内容里的句号或换行。以下是两种常用方案:

方案1:分割后获取纯任务内容

如果只需要提取任务的文本内容(不含数字前缀),可以用带非捕获组的正则分割,再过滤空元素:

var res = "1. This is the first task\n2. This is the second task. Also, these are some extra few words on the second task\n3. This is the third task";
var taskContents = res.split(/(?:^|\n)\d+\. /).filter(item => item);
// 输出结果:["This is the first task", "This is the second task. Also, these are some extra few words on the second task", "This is the third task"]

正则说明:

  • (?:^|\n):匹配字符串开头或换行符,确保只针对任务开头的数字前缀
  • \d+:匹配1个及以上数字
  • \. :匹配句号加空格(对应原字符串里数字前缀后的格式)
  • filter(item => item):移除split后产生的空字符串(因为第一个分隔符在字符串开头)

方案2:直接匹配完整任务(含数字前缀)

如果需要保留「数字.」的前缀,用match方法结合多行正则更直接:

var res = "1. This is the first task\n2. This is the second task. Also, these are some extra few words on the second task\n3. This is the third task";
var fullTasks = res.match(/^\d+\. .+/gm);
// 输出结果:["1. This is the first task", "2. This is the second task. Also, these are some extra few words on the second task", "3. This is the third task"]

正则说明:

  • ^:匹配行开头(结合m多行模式生效)
  • \d+\. :匹配数字前缀
  • .+:匹配该行剩余的所有内容
  • gm:全局+多行模式,确保遍历所有行并匹配符合条件的内容

之前用'.'或'\n'分割失败的原因很明确:前者会把任务内容里的句号也当成分隔符,后者如果任务内容包含换行(比如长任务折行)就会被错误拆分,而正则能精准定位任务的起始标识,避免这些问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 05:07:32