如何用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*", "|"), "|"))), "^\\(\\(", "("), "\\)\\)$", ")")))
公式分步解释
REGEXREPLACE(A1, "\s*w/5\s*", "|"):将所有带前后空格的w/5替换为竖线|,作为统一分隔符SPLIT(..., "|"):按竖线分割字符串为数组TRIM(...):去除每个分割片段的前后空格TRANSPOSE(...):将横向数组转为纵向,便于查看和单独提取- 内层嵌套的
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
相关产品推荐
相关产品推荐

