【问题标题】:How to extract the year from a URL path using REGEXP_EXTRACT in Google Data Studio?如何在 Google Data Studio 中使用 REGEXP_EXTRACT 从 URL 路径中提取年份?
【发布时间】:2019-04-02 13:21:08
【问题描述】:

我正在构建一个 Google Data Studio 仪表板,我需要为帖子发布的年份创建一个计算字段。年份在 URI 路径中,但我不确定如何使用 REGEXP_EXTRACT 提取它。我已经尝试了这里提出的许多解决方案,但它们似乎都不适用于 Data Studio。

简而言之,我有一个这样的 URI:/theme/2019/jan/blog-post-2019/

如何使用REGEXP_EXTRACT函数获取theme/之后/jan之前的第一个2019?

【问题讨论】:

  • 请分享当前代码,看看你卡在哪里了。
  • 不要它,因为那是我卡住的地方。这就是我所拥有的: REGEXP_EXTRACT(Page, '(\d{4}[^/.*]*)') 并且它无法正常工作,因为它也在捕获一年中的第二次出现并在数据洞察。
  • 试试REGEXP_EXTRACT(Page, '/([0-9]{4})/')

标签: regex uri google-data-studio re2


【解决方案1】:

试试这个:

REGEXP_EXTRACT(Page, 'theme\/([0-9]{4})\/[a-z]{3}\/') 

地点:

  • theme\/ 字面意思是“主题/”;
  • ([0-9]{4}) 是一个 capturing group,包含从 0 到 9 的 4 个字符(即四位数字);
  • \/[a-z]{3}\/ 表示一个斜线,后跟 3 个小写字母(假设您希望正则表达式匹配所有月份),然后是另一个斜线。如果您想要更严格的内容,请在最后一部分尝试使用 \/(?:jan|feb|mar|...)\/

demo

【讨论】:

  • 太棒了!谢谢!
【解决方案2】:

正如您所提到的,我认为您只想提取字符串之间的年份。以下将为您实现。

根据您的需要调整查询

 SELECT * 
 FROM Sample_table
 WHERE REGEXP_EXTRACT(url, "(?<=\/theme\/)(?<year>\d{4})(?=\/[a-zA-Z]{3})")

【讨论】:

    猜你喜欢
    • 2021-08-02
    • 2020-02-29
    • 2019-11-23
    • 2015-07-31
    • 2021-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-06
    相关资源
    最近更新 更多