我正在使用GBQ尝试创建一个regexp来提取"tn"值从下面的URL示例中获取。"tn"键可以在URL中的任何位置,在"事件"之后。在技术上也可以是任何值。然而,我使用的regexp(如下所示)使用了两个组,而GBQ只允许一个组,所以我正在寻求帮助,看看如何才能使它
我还尝试分割下面的URL,试图从数组中提取值,但无法找出从那里去的地方。我觉得拆分它可能更容易,但我想确保如果我打开它(理想情况下我不需要打开它),它最终不会复制数据。
https://google.com/d/track/event?upid=12345& url = https://www.mywebsite.com/&tn = o_rnpp4126& val = 100.00, cache_buster = 15, ps = 2
https://google.com/d/track/event?upid=12345& url = https://www.mywebsite.com/&val = 100.00, cache_buster = 15, ps = 2, tn = o_rnpp4126
tn=(.+?)(&|$)
select
split(split('https://google.com/d/track/event?upid=12345&url=https://www.mywebsite.com/&val=100.00&cache_buster=15&ps=2&tn=o_rnpp4126','event?')[ordinal(2)],'&')
要匹配直到下一个&
或没有第二组的行尾的所有内容,(我假设没有查找)您可以简单地使用tn=([^&]+)
。
遇到&
时自动停止。
同样,为了避免匹配类似smtn=value
的东西,您可以使用btn=([^&]+)
。它使用词边界b
来排除以tn
结尾的词的匹配。
或者您可以使用非捕获组:tn=(.+?)(?:&|$)