Postgres正则表达式匹配多个字符

时间:2015-02-13 09:57:48

标签: regex postgresql

我正在尝试构建一个匹配多个字符的正则表达式来替换它们。

我有一个PHP工作模式,如下所示:

/([\{\}\"])*/g

但不幸的是,它似乎与Postgres无关。

有人可以帮忙吗?

以下是我正在尝试构建的请求:

SELECT 
   regexp_replace(array_agg(DISTINCT columnName)::TEXT, '/([\{\}\"])*/g', '')
FROM tableName
WHERE ...

1 个答案:

答案 0 :(得分:4)

不确定你的正则表达式中//g是什么,如果这是一个分隔符,那么" global"标志,然后你不能在Postgres中的正则表达式中指定。在Postgres中,这将是函数的额外参数:

regexp_replace(array_agg(DISTINCT columnName)::TEXT, '([\{\}\"])*', '', 'g')

但看起来你正在尝试连接字符串。如果这是真的,我认为你真的想要:

string_agg(distinct columnName, '')