首页 > 解决方案 > 如何提取短语(xvth)后的数字并将短语替换为“Group-”?

问题描述

我有数据从 BigQuery 导出到 Google Data Studio 一个字段包含如下用户名。

前 4 个字符 ( xvth) 始终相同,后面的数字 ( xvth) 对应一个组。多个用户名将在这些字符之后包含相同的数字,但从后面开始的字符串的其余部分00-将不同。我要做的是提取 4 个字符后面的数字并创建一个如下所示的新字段。

我已经尝试了以下REPLACE(SUBSTR(Users,1, 6), 'xvth20', 'Group-20')方法,我将不得不为每个看起来太多的条件创建一个。此外,数据将继续增长,所以我不想继续添加另一个功能。有没有更简单的方法来做到这一点?

标签: regexgoogle-data-studiore2

解决方案


以下任一计算字段都将替换为,紧随其后的是各自捕获的数字;计算字段 #1使用Raw Literal,由需要单个转义特殊 RegEx 字符的字母表示,而计算字段 #2需要转义 Google Data Studio RegEx,因为它不使用 Raw Literal:REGEXP_REPLACE xvthGroup-r\\\

1) 使用r(原始文字)

REGEXP_REPLACE(Users, r"^xvth(\d+).*", r"Group-\1")

2)没有r(原始文字)

REGEXP_REPLACE(Users, "^xvth(\\d+).*", "Group-\\1")

可编辑的谷歌数据工作室报告(嵌入式谷歌表格数据源)和一个 GIF 来详细说明:


推荐阅读