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

Google Sheets正则提取产品编码并生成指定格式字符串求助

解决方法

方法1:用REGEXREPLACE+SUBSTITUTE快速拼接

直接通过两次文本替换完成编码提取和格式转换:

="Hello, the product you ordered are: 1 "&SUBSTITUTE(REGEXREPLACE(A1, "[^-,]+-", ""), ", ", ", 1 ")&". Thank you"
  • 第一步REGEXREPLACE(A1, "[^-,]+-", ""):匹配每个产品条目中-之前的前缀(比如Vegano-、Fagottino-),并替换为空,得到纯编码的逗号分隔字符串(如CO0056, FA0028, CB0025, B108)。
  • 第二步SUBSTITUTE(..., ", ", ", 1 "):把编码之间的, 替换成, 1 ,再在开头补上1 ,就得到带1 前缀的编码列表。

方法2:拆分+提取+拼接(更直观)

通过拆分字符串、逐个提取编码再拼接的方式实现:

="Hello, the product you ordered are: 1 "&JOIN(", 1 ", ARRAYFORMULA(REGEXEXTRACT(SPLIT(A1, ", "), "-(.*)")))&". Thank you"
  • SPLIT(A1, ", "):把原字符串按, 拆分成单个产品条目(如Vegano-CO0056)。
  • REGEXEXTRACT(..., "-(.*)"):对每个条目提取-后面的所有内容(即目标编码)。
  • JOIN(", 1 ", ...):把提取到的编码用, 1 连接,再在开头补上1 ,最终组合成要求的格式。

为什么你的原公式报错?

  1. 第一个公式=REGEXEXTRACT(A1,"-[.*?],"):
    • Google Sheets的正则引擎不支持非贪婪匹配的.*?语法;
    • REGEXEXTRACT默认只返回第一个匹配结果,无法提取所有编码。
  2. 第二个公式=IFERROR(TRIM(REGEXEXTRACT(A1,":-([^\(]+,"))):
    • 原字符串中没有:-这个字符组合,正则匹配不到内容;
    • [^\(]+,的匹配逻辑错误,你要的是-到, 或结尾的内容,不是左括号以外的字符。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 00:56:26