【问题标题】:Postgres regex matching multiple charactersPostgres正则表达式匹配多个字符
【发布时间】:2015-04-14 07:59:39
【问题描述】:

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

我有一个 PHP 工作模式,看起来像:

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

但不幸的是,它似乎不适用于 Postgres。

有人可以帮忙吗?

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

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

【问题讨论】:

    标签: regex postgresql


    【解决方案1】:

    不确定您的正则表达式中的 //g 是什么,如果这是一个分隔符和“全局”标志,那么您不能在 Postgres 的正则表达式中指定它。在 Postgres 中,这将是函数的额外参数:

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

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

    string_agg(distinct columnName, '') 
    

    【讨论】:

    • 太棒了,不知道string_agg。谢谢!
    猜你喜欢
    • 2019-04-24
    • 1970-01-01
    • 1970-01-01
    • 2014-10-11
    • 1970-01-01
    • 1970-01-01
    • 2013-12-16
    • 2022-01-22
    • 1970-01-01
    相关资源
    最近更新 更多