在 Redshift 中使用活动跟踪参数捕获 URL 时遇到问题
Trouble Capturing URLs With Campaign Tracking Parameters in Redshift
我正在尝试捕获在对网站主页的查询中具有跟踪参数的 URL。在某些情况下,参数在查询开始之前可以有一个正斜杠。这里有两个应该匹配的例子:
https://test.com/?utm_campaign=email
https://test.com?utm_campaign=email
这里有两个不应该匹配的例子:
https://test.com/blog
https://test.com/blog?utm_campaign=email
这是一个示例查询:
SELECT t.url,COUNT(t.id) AS pageviews
FROM db.table AS t
WHERE t.url ~ '^https*:\/\/test\.com\?'
GROUP BY 1
ORDER BY 2 DESC
请注意,Redshift 文档指出:
To search for strings that include metacharacters, such as ‘. * | ? ‘,
and so on, escape the character using two backslashes (' \ ')
单斜杠和双斜杠我都试过了。单斜杠 return 比我预期的多很多,而双斜杠 return 没有任何结果。我更习惯于在 Javascript 中编写正则表达式,因此我认为我在两者之间进行转换时遇到了麻烦;非常感谢任何帮助。
/
符号不是特殊的正则表达式元字符,您不应将其转义。此外,为了避免转义 .
或 ?
的问题,您可以将它们放在括号表达式中:
WHERE t.url ~ '^https?://test[.]com[?]'
它将匹配:
^
- 字符串开头
https?://test[.]com[?]
- http://test.com?
或 https://test.com?
.
我正在尝试捕获在对网站主页的查询中具有跟踪参数的 URL。在某些情况下,参数在查询开始之前可以有一个正斜杠。这里有两个应该匹配的例子:
https://test.com/?utm_campaign=email
https://test.com?utm_campaign=email
这里有两个不应该匹配的例子:
https://test.com/blog
https://test.com/blog?utm_campaign=email
这是一个示例查询:
SELECT t.url,COUNT(t.id) AS pageviews
FROM db.table AS t
WHERE t.url ~ '^https*:\/\/test\.com\?'
GROUP BY 1
ORDER BY 2 DESC
请注意,Redshift 文档指出:
To search for strings that include metacharacters, such as ‘. * | ? ‘, and so on, escape the character using two backslashes (' \ ')
单斜杠和双斜杠我都试过了。单斜杠 return 比我预期的多很多,而双斜杠 return 没有任何结果。我更习惯于在 Javascript 中编写正则表达式,因此我认为我在两者之间进行转换时遇到了麻烦;非常感谢任何帮助。
/
符号不是特殊的正则表达式元字符,您不应将其转义。此外,为了避免转义 .
或 ?
的问题,您可以将它们放在括号表达式中:
WHERE t.url ~ '^https?://test[.]com[?]'
它将匹配:
^
- 字符串开头https?://test[.]com[?]
-http://test.com?
或https://test.com?
.