问题描述
我的任务是创建一个包含所有 ID 的新维度。
我有 50 个 ID,需要从 URL 中提取。 URL 位于维度“seite”(页面)中。 我已经知道所有 ID(示例 ID:S121314、s232425)。 URL 如下所示:www.website.ch/de/cms/seite/a-lot-of-text-stands-here-S121314a340921 并非所有网址都有 ID,此处 ID 的第二部分“a340921”应省略。
我尝试了这个和其他一些东西,但没有任何效果:
新维度“ID”:
CASE
WHEN Seite IN ("S143254","S162892","S110454","S... otherIDs") THEN "hat ID"
ELSE "keine ID"
END
因此,我发现所有 13000 个 URL 都有“keine ID”。 我知道这个 WHEN IN 代码不会提取我的 ID,我只是想看看我是否能在失败的 URL 中找到 ID。
如果有人能帮助我那就太好了。如果问题中有任何错误或信息缺失,请告诉我。
解决方法
用这个公式创建一个新字段(我将这个新字段称为 seite_id
):
REGEXP_EXTRACT(seite,'-(S[0-9]+)')
对于这个正则表达式,我假设你所有的 ID:
- 出现在 URL 中的“-”(破折号)之后;
- 以字母“S”开头;
- 只包含“S”之后的数字;
- 在第一个非数字字符(例如小“a”)之后停止。
如果我的猜测是正确的,这个正则表达式应该可以完成这项工作,您将拥有一个只有页面 ID 的新字段。在此之后,您的语句应该有效:
CASE
WHEN seite_id IN ("S143254","S162892","S110454","S... otherIDs") THEN "hat ID"
ELSE "keine ID"
END