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

如何用REGEXEXTRACT提取Google Sheets中w/5分隔的多组字符串

Google Sheets 提取被w/5分隔的多组字符串

示例原语句

原语句:("AD" OR "AB" OR "ZZ" OR "Short Long" OR "Long Short") w/5 (("foo bar*" OR "bar* foo" OR "kit kat*") w/5 ("ping* pong game*" OR "ppg") w/5 ("bro" OR "sis" OR "fam"))

预期提取结果

  • 组1(已提取):("AD" OR "AB" OR "ZZ" OR "Short Long" OR "Long Short")
  • 组2:("foo bar*" OR "bar* foo" OR "kit kat*")
  • 组3:("ping* pong game*" OR "ppg")
  • 组4:("bro" OR "sis" OR "fam")

批量提取并清理所有组的公式

假设原语句存于单元格A1,使用以下数组公式可直接得到所有清理后的组:

=ARRAYFORMULA(TRIM(REGEXREPLACE(REGEXREPLACE(TRANSPOSE(TRIM(SPLIT(REGEXREPLACE(A1, "\s*w/5\s*", "|"), "|"))), "^\\(\\(", "("), "\\)\\)$", ")")))

公式分步解释

  1. REGEXREPLACE(A1, "\s*w/5\s*", "|"):将所有带前后空格的w/5替换为竖线|,作为统一分隔符
  2. SPLIT(..., "|"):按竖线分割字符串为数组
  3. TRIM(...):去除每个分割片段的前后空格
  4. TRANSPOSE(...):将横向数组转为纵向,便于查看和单独提取
  5. 内层嵌套的REGEXREPLACE:清理组2开头的多余左括号((、组4结尾的多余右括号))

单独提取指定组的公式

  • 提取组2:
=REGEXREPLACE(INDEX(TRANSPOSE(TRIM(SPLIT(REGEXREPLACE(A1, "\s*w/5\s*", "|"), "|"))),2), "^\\(\\(", "(")
  • 提取组3:
=INDEX(TRANSPOSE(TRIM(SPLIT(REGEXREPLACE(A1, "\s*w/5\s*", "|"), "|"))),3)
  • 提取组4:
=REGEXREPLACE(INDEX(TRANSPOSE(TRIM(SPLIT(REGEXREPLACE(A1, "\s*w/5\s*", "|"), "|"))),4), "\\)\\)$", ")")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 13:55:19