Vertica SQL:提取URL中第三个斜杠至问号前的字符串
Vertica提取URL指定片段的实现方案
针对字段类型为long char的URL数据(示例:https://www.stackoverflow.com/abc/sometihng-herer?&jhdsfj@38736),要提取从第三个“/”开始到“?”之前的字符串,可使用Vertica的REGEXP_SUBSTR正则提取函数实现,具体SQL语句如下:
SELECT REGEXP_SUBSTR(url_col, '^[^/]+//[^/]+(/[^?]+)', 1, 1, 'e', 1) AS extracted_path FROM your_table;
正则表达式说明:
^[^/]+//:匹配URL开头到第二个斜杠后的固定前缀(如示例中的https://)[^/]+:匹配第二个斜杠到第三个斜杠之间的域名部分(如示例中的www.stackoverflow.com)(/[^?]+):捕获目标片段,匹配从第三个斜杠开始到第一个问号之前的所有字符,最终返回该捕获组的内容(即示例中的/abc/sometihng-herer)
函数参数说明:
- 第1个参数:目标字段
url_col - 第2个参数:匹配用的正则表达式
- 第3个参数:起始匹配位置(固定为1)
- 第4个参数:匹配第1个符合条件的结果
- 第5个参数:
'e'表示启用扩展正则模式 - 第6个参数:返回第1个捕获组的内容
内容的提问来源于stack exchange,提问作者SQLLER
相关产品推荐
相关产品推荐

