运行PostgreSQL的Redshift中的正则表达式

时间:2015-10-11 11:23:49

标签: regex postgresql amazon-redshift

我在运行PostgreSQL的redshift中有一个表,其中一列是url。

我需要从这个网址中提取参数。

即。如果url = foo.bar?param1 = a& param2 = b& param1 = c

我需要param1的值,该值是来自此URL的

试过一些像

这样的解决方案
(string_to_array(url,'param1='))[array_upper(string_to_array(url,'param1='),1)]

regexp_matches

Redshift不允许使用数组,因此这两种方法都没用。 有没有办法用SQL解决这个问题?

1 个答案:

答案 0 :(得分:1)

尝试使用regexp_matches,如下所示:

SELECT regexp_matches('url=foo.bar?param1=a&param2=b&param1=c', E'param1=([^&=\s]+)(?!.*param1)');

[SQL Fiddle Demo]