如何使用正则表达式在谷歌电子表格中用下划线(_)分隔字符串?

时间:2017-03-15 02:44:46

标签: regex string google-sheets

我需要从包含由" _"分隔的文本的单元格中创建一些列。

输入将是: campaign1_attribute1_whatever_yes_123421

输出必须在不同的列中(每个字段一个),没有" _"并且不包括最终的数字,如下: campaign1 attribute1无论是什么

必须使用正则表达式公式完成!

帮助!

提前致谢(对不起我的英文)

3 个答案:

答案 0 :(得分:1)

要解决此问题,您可以使用SPLIT和REGEXREPLACE函数

解决方案:

If Tmp <> 0 And Tmp <> "" And Tmp < Fun Then 
    Fun = Tmp 
    i = y
End If

说明:

在单元格A3中我们使用SPLIT(文本,分隔符,[split_by_each]),本例中的文本格式为regex = REGEXREPLACE(A1,“_ + \ d $”,“” )*删除 123421,女巫会给你一个由“”分隔的每个单词的列。

Text      -  A1 = "campaign1_attribute1_whatever_yes_123421"
Formula   -  A3 = =SPLIT(REGEXREPLACE(A1,"_+\d*$",""), "_", TRUE)

答案 1 :(得分:1)

=REGEXEXTRACT("campaign1_attribute1_whatever_yes_123421","(("&REGEXREPLACE("campaign1_attribute1_whatever_yes_123421","((_)|(\d+$))",")$1(")&"))")

这样做是用括号替换所有_来创建捕获组,同时也排除末尾的数字串,然后用括号括起整个字符串。

enter image description here

然后我们使用正则表达式提取来实现拉出碎片,组自动将它们推送到自己的单元格/列

enter image description here

答案 2 :(得分:0)

昨天终于在stackoverflow(西班牙语)中弄明白了:https://es.stackoverflow.com/questions/55362/c%C3%B3mo-separo-texto-por-guiones-bajos-de-una-celda-en ...

毕竟这很简单......

我之所以要求只使用正则表达式和谷歌工作表是因为我需要在Google数据工作室中使用它(与电子表格相同的正则表达式功能)

要使每个列只使用此正则表达式提取函数:

第1栏:REGEXP_EXTRACT(Campaña, '^(?:[^_]*_){0}([^_]*)_')

第二栏:REGEXP_EXTRACT(Campaña, '^(?:[^_]*_){1}([^_]*)_')

第3栏:REGEXP_EXTRACT(Campaña, '^(?:[^_]*_){2}([^_]*)_')

...等 在切换列的公式中唯一需要改变的是{},(列号-1)中的数字。 如果你没有最终的号码,就不要把最后一个号码放在&#34; _&#34;。

最后,请记住再次执行所有计算字段,因为(例如)它会因CPC,CTR和其他自动计算的Adwords指标而出错。

希望它有所帮助!