我正在嘗試查找 URL 串列的子字串,但由于其中一個 URL 末尾的額外字符(正斜杠)而遇到問題。下面是兩個資料示例:
編輯:
對于那里的最后一個示例,您將如何獲得“sub_test”?
SPLIT_PART
可以使用負索引:WITH cte AS ( SELECT CONCAT('http://', COLUMN1) AS URL FROM VALUES ('www.url1.com/test'), ('www.url1.com/test2/'), ('www.url1.com/test/sub_test/') ) SELECT URL, PARSE_URL(URL) AS parts, PARSE_URL(URL):path::text AS path, SPLIT_PART(TRIM(PARSE_URL(URL):path::text, '/'), '/', -1) AS path3 FROM cte;
輸出:
uj5u.com熱心網友回復:
您可以像這樣修剪最后的斜線:
select REGEXP_SUBSTR(trim(URL, '/'), '/([^/] )$', 1, 1, 'e', 1) as URL_EXTRACT
如 Lukasz 所示,將 URL 決議為 JSON 將涵蓋更多可能性,但如果這是唯一需要糾正的問題,這對于大型資料集會更快。
uj5u.com熱心網友回復:
您可以使用 Positive Lookahead 執行此任務:
[^\/\n] (?=\/?$)
解釋:
[^\/\n]
:除斜杠和換行符以外的任何字符組合(您的匹配項)(?=\/?$)
:積極的前瞻(檢查你的比賽后是否有)\/?
: 可選斜杠$
: 結束字串
在這里試試。