我对regexp函数相当陌生。我正在使用SQL-syntax来尝试提取一个URL的特定路径。
URL的例子。
https://www.test.com/private/how-to-extract/certain/paths/with-regexp.html
1 2 3 4 5
所以我的第一列应该包括路径nr 1: private第二列路径nr 2: how-to-extract第三列: certain第四列: paths第五列: with-regexp.
我尝试了以下的方法。
,replace(regexp(URL, '(.*?)\/(.*?)', '$2'), '%20', ' ') as path1
,replace(regexp(URL, '(.*?)\/(.*?)\/(.*?)', '$3'), '%20', ' ') as path2
,replace(regexp(URL, '(.*?)\/(.*?)\/(.*?)\/(.*?)', '$4'), '%20', ' ') as path3
,replace(regexp(URL, '(.*?)\/(.*?)\/(.*?)\/(.*?)\/(.*?)', '$5'), '%20', ' ') as path4
,replace(regexp(URL, '(.*?)\/(.*?)\/(.*?)\/(.*?)\/(.*?)\/(.*?)', '$6'), '%20', ' ') as path5
我想我不太明白某些路径的regexp函数是如何运行的... ...
最好使用 INSTR
函数,获取n个子串的出现次数。
INSTR( string, substring [, start_position [, nth_appearance ] ] )