我正在构建一个Google Data Studio仪表板,我需要为帖子发布的年份创建一个计算字段。年份在URI路径中,但我不知道如何使用REGEXP_EXTRACT
提取它。我已经尝试了一些在这里提出的解决方案,但它们似乎都没有在Data Studio上运行。
简而言之,我有一个像这样的URI:/theme/2019/jan/blog-post-2019/
如何在REGEXP_EXTRACT
之后和theme/
之前使用/jan
函数获得第一个2019年?
试试这个:
REGEXP_EXTRACT(Page, 'theme\/([0-9]{4})\/[a-z]{3}\/')
哪里:
theme\/
的字面意思是“主题/”;([0-9]{4})
是一个capturing group,包含4个字符,从0到9(即四位数);\/[a-z]{3}\/
表示斜杠,后跟3个小写字母(假设您希望正则表达式匹配所有月份),然后是另一个斜杠。如果您想要更严格的限制,请尝试使用\/(?:jan|feb|mar|...)\/
作为最后一部分。见demo。
正如你所提到的,我认为你只想提取字符串之间的年份。以下将为您实现这一目标。
根据您的需要调整查询
SELECT *
FROM Sample_table
WHERE REGEXP_EXTRACT(url, "(?<=\/theme\/)(?<year>\d{4})(?=\/[a-zA-Z]{3})")