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 个或多个字符。
我正在 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 个或多个字符。