jav*_*ash 5 regex sql google-bigquery
假设我有一个名为“Youtube”的列,我想在 URL 的最后一个斜杠之后提取字符串。我将如何在 BigQuery 标准 SQL 中执行此操作?
例子:
https://youtube.com/user/HaraldSchmidtShow
https://youtube.com/user/applesofficial
https://youtube.com/user/GrahamColton
Run Code Online (Sandbox Code Playgroud)
基本上,我想要:
HaraldSchmidtShow
applesofficial
GrahamColton
Run Code Online (Sandbox Code Playgroud)
这可能已经对你有用了:
WITH data AS(
SELECT 'https://youtube.com/user/HaraldSchmidtShow' AS url UNION ALL
SELECT 'https://youtube.com/user/applesofficial' UNION ALL
SELECT 'https://youtube.com/user/GrahamColton'
)
SELECT
SPLIT(url, '/')[SAFE_OFFSET(ARRAY_LENGTH(SPLIT(url, '/')) - 1)] AS name
FROM `data`
Run Code Online (Sandbox Code Playgroud)
它只是分割字符串并获取最后一个值。
上一个答案的替代方案,当末尾有“/”时也有效:
WITH data AS(
SELECT 'https://youtube.com/user/HaraldSchmidtShow' AS url UNION ALL
SELECT 'https://youtube.com/user/applesofficial' UNION ALL
SELECT 'https://youtube.com/user/GrahamColton' UNION ALL
SELECT 'https://youtube.com/user/GrahamColton/'
)
SELECT REGEXP_EXTRACT(url, r'/([^/]+)/?$') name
FROM `data`
Run Code Online (Sandbox Code Playgroud)