REGEXP_EXTRACT 在 Google 数据洞察中;继续获取 'Null'

REGEXP_EXTRACT in Google Data Studio; Keep Getting 'Null'

我正在 Google 的数据洞察中创建报告,并且我在过去使用 Keyword 维度上的 REGEXP_MATCH 结合 [=17] 成功创建了多个自定义维度=] 语句来创建我需要的维度。这个让我难住了。

我有通过 Keyword 维度传入的数据,其中包含我想提取并显示为自定义维度的子字符串。

通过的关键字数据的子集如下所示:

09172018_rp_ws_1_og_
img s4_ac_p_act_
img s5_ws_5_m_
img s4_ws_5_m_

我正在尝试使用 REGEXP_EXTRACT 创建一个名为 Image type 的新计算字段,该维度将所有以 img 开头、后跟 space 和然后是任何以下划线结尾的字母数字。因此所有带有 img s4 的条目将被组合在一起,img s5 将被组合在一起。关键字维度中没有该模式的任何内容都可以完全排除在数据集之外。

除了 null 使用 REGEXP_EXTRACT 我无法得到任何结果。

即使只是尝试 REGEXP_EXTRACT(Keyword, '.*img.*') 在为新计算字段输入公式时也会产生空值。

让我难过的是,我尝试了以下方法只是为了查看我的语法是否已关闭,而这个公式确实 return 结果(这不是我想要的,因为图像类型未聚合)。

CASE
  WHEN (REGEXP_MATCH(Keyword, '.*img.*')) THEN Keyword
  ELSE "Not Set"
END

知道我哪里出错了吗?无论我输入什么,我都无法从 REGEXP_EXTRACT(Keyword, 'your reg expression here') 中得到任何输出。

请注意,为了从 REGEXP_EXTRACT 中提取任何文本,您应该在正则表达式模式中定义一个 捕获组 。简而言之,用一对未转义的括号将需要提取的部分括起来。

现在,要在字符串的开头匹配 img,您需要使用 ^ 锚点,它匹配字符串位置的开头。

要匹配 1 个或多个字符,请使用 +

因此,您可以根据您的实际规则使用以下任何一种:

REGEXP_EXTRACT(Keyword, '^img ([a-zA-Z0-9_]+)')
REGEXP_EXTRACT(Keyword, '^img\s+(\w+)')
REGEXP_EXTRACT(Keyword, '^img\s+(.+)')

详情

  • ^ - 字符串开头
  • img - 文字子串
  • ([a-zA-Z0-9_]+) - 捕获组 1:一个或多个字母、数字或 _
  • \s+ - 1 个或多个空格
  • \w+ - 1 个或多个单词字符:字母、数字或 _
  • .+ - 除换行符外的 1 个或多个字符。