在 BigQuery Standard SQL 中获取最后一个斜杠后的字符串

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)

Wil*_*uks 5

这可能已经对你有用了:

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)

它只是分割字符串并获取最后一个值。


Fel*_*ffa 5

上一个答案的替代方案,当末尾有“/”时也有效:

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)