我需要在BigQuery中使用的各种URL上使用REGEXP_EXTRACT,并从中提取不同的字符串。
例如,我有这个网址:
url =
https://www.whatever.com/record-a-beautiful-and-professional-voice-over?sec_context=recommendation&context_alg=nodes&sec_context_referrer=search
我想使用BigQuery REGEXP_EXTRACT
函数并提取名为context_alg=
的参数之后的字符串(在URL中的第一个&
之后显示)。
含义 - 我的输出将为nodes
。
(context_alg
是网址中的参数,并且始终具有相同的名称)
所以实际上我需要使用类似的东西:
REGEXP_EXTRACT(url, "REGEXP that bring back 'nodes')
谢谢!
答案 0 :(得分:2)
尝试下面的BigQuery
REGEXP_EXTRACT(url, r'context_alg=([^?&#]*)')
答案 1 :(得分:1)
如果您需要从网址中提取所有参数,您还可以使用REGEXP_EXTRACT_ALL,如下所示:
REGEXP_EXTRACT_ALL(query,r'(?:\?|&)((?:[^=]+)=(?:[^&]*))') as params
这会将结果作为数组返回(参见How to extract URL parameters as ARRAY in Google BigQuery):