postgresql

时间:2015-06-29 13:28:36

标签: regex postgresql substring amazon-redshift

以下查询从网址中提取最后两个部分。我想从网址中提取第二个最后一部分,不包括最后一部分。

SELECT substring(url,'/[^/]+/[^/]+$') FROM url_time;

假设我将输入设为Input : http://stackoverflow.com/questions/ask,那么我希望获得Output : /questions

对不起,如果这是一个微不足道的问题。我无法达到所需的解决方案。

感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

regexp_replace和捕获组会这样做:

SELECT REGEXP_REPLACE ( url,'^.*/([^/]+)/[^/]+$', '\1' ) FROM url_time;

最初的^.*消耗了网址的开头。第一个()周围的括号[^/]+表示捕获组,\1将整个匹配替换为输出中捕获组的值。