繁体   English   中英

Regexp_extract 从 URL 作为字符串 (SQL BigQuery)

[英]Regexp_extract from URLs as strings (SQL BigQuery)

我试图从多个 URL 中提取一个字符串,这些 URL 都有一个共同点,即使它们的构建方式不同。 让我举几个例子:

/cz/category/79478/productname
/https://www.store.net/de/category/49448/productname
/https://www.store.net/category/62448/productname
/category/79455/productname

我正在使用 BigQuery 并且我能够为单个示例编写Regexp_extract子句,但是,我正在寻找一种在category/之后提取数字(作为字符串)的方法,(来自第一个 url 的79478 )。 所有地址都有共同的/category/部分,所以从我的角度来看它应该是可行的。

这是我一直在尝试使用的表达方式:

regexp_extract(page_path, '[^category/]+/([^/]+)/')

但它不起作用。 知道我在这里做错了什么吗?

对领先的/category/使用非捕获组?

regexp_extract(page_path, '(?:/category/)([^/]+)')

演示: https://regex101.com/r/WSIT77/1

考虑以下方法

select page_path, regexp_extract(page_path, r'/category/(\d+)/') number
from your_table    

如果应用于您问题中的示例数据 - output 是

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM