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

Apps Script正则问题:提取Slack消息中的目标系统名称

修正正则以提取Slack消息中的系统名称

问题分析

你的正则无法匹配的核心问题有两个:

  1. 目标行结构是Requested system? MMM,问号后是空格而非换行,但你用\n做分隔符,导致匹配失败。
  2. 原正则结合s模式用$匹配整个消息的结尾,但目标行并非消息最后一行,因此无法捕获内容。

修正后的正则与代码

替换原正则为以下表达式,即可正确提取单个或逗号分隔的系统名称:

const regexRequestedSystem = /Requested system?\s+(.*)$/m;

修改后的完整函数:

function extractData(message, channelId) {
  const regexRequestedSystem = /Requested system?\s+(.*)$/m;
  const requestedSystemMatch = regexRequestedSystem.exec(message);

  return {
    requestedSystem: requestedSystemMatch ? requestedSystemMatch[1].trim() : null,
    messageLink: `https://slack.com/app_redirect?channel=${channelId}&message_ts=${message.ts}`,
  };
}

正则说明

  • \s+:匹配问号后的一个或多个空白字符,兼容可能的多空格场景
  • (.*)$:捕获该行从空格后到行尾的所有内容,支持逗号分隔的多个系统名称
  • m:多行模式,让$匹配单行结尾而非整个字符串结尾,确保目标行不是消息最后一行时也能匹配

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 22:12:33