从 URL 中获取特定字符 BigQuery 之间的值

问题描述 投票:0回答:2

我需要解析 url,以便获取

.com/
之后和下一个
/
字符之前的值。我的数据如下所示:

url
https://www.delish.com/food-news/news/jdhgkjdf/100-years-of-christmas
https://www.delish.com/food-news/news/100-years-of-christmas

期望的输出是:

new_string
food-news
food-news

我尝试过以下方法:

SPLIT(url, '/')[SAFE_OFFSET(ARRAY_LENGTH(SPLIT(url, '/')) - 4)] AS new string

但是因为 URL 不一致,有时它会抓取

food_news
,有时它会抓取
www.delish.com
,这就是为什么 offset 在这种特殊情况下不起作用。

parsing url google-bigquery urlparse
2个回答
2
投票

使用下面

regexp_extract(url, net.host(url) || r'/([^/]+)')

0
投票
SPLIT(url, '/')[SAFE_OFFSET(ARRAY_LENGTH(SPLIT(b.page_link, '.com/'))  +1)] AS new_string
© www.soinside.com 2019 - 2024. All rights reserved.