如何在Google Sheets中从带分隔符的字符串提取指定内容
Google Sheets 字符串提取拼接解决方案
方法1:正则替换一步到位
如果目标单元格是A1,直接用REGEXREPLACE函数匹配并替换,过滤掉不需要的部分,同时用下划线连接目标片段:
=REGEXREPLACE(A1, "^([^-]+) - ([^-]+) - .+ - .+ - ([^-]+) - ([^-]+)$", "$1_$2_$3_$4")
原理:正则表达式精准匹配整个字符串结构,捕获第1、2、5、6个被- (空格+横杠)分隔的片段,最后用$1到$4调用捕获内容,以下划线拼接。
方法2:拆分+索引+拼接(更直观)
先用SPLIT把字符串拆分成数组,再用INDEX提取指定位置的片段,最后用TEXTJOIN拼接:
=TEXTJOIN("_", TRUE, INDEX(SPLIT(A1, " - "), 1), INDEX(SPLIT(A1, " - "), 2), INDEX(SPLIT(A1, " - "), 5), INDEX(SPLIT(A1, " - "), 6))
注意:拆分的分隔符必须是" - "(带前后空格),否则会把片段里的空格也拆分出来;TEXTJOIN的第二个参数TRUE用于忽略空值,避免出现多余下划线。
补充:REGEXEXTRACT+TEXTJOIN组合方案
如果之前用REGEXEXTRACT没成功,是因为它会返回多个捕获组的数组,配合TEXTJOIN就能直接完成拼接:
=TEXTJOIN("_", TRUE, REGEXEXTRACT(A1, "^([^-]+) - ([^-]+) - .+ - .+ - ([^-]+) - ([^-]+)$"))
内容的提问来源于stack exchange,提问作者paolotroia
相关产品推荐
相关产品推荐

