【问题标题】:Postgresql regex_replace comma, single and double quotes in a singlePostgresql regex_replace 逗号,单引号和双引号
【发布时间】:2020-06-13 02:08:15
【问题描述】:

我有一个由双引号、单引号和逗号组成的字符串。我想用 regex_replace 替换所有出现的它们。

试过了

REGEXP_REPLACE(translate (links, '"',''), '['''''',]'        , '') 

它替换第一次出现的逗号而不是第二次。

'https://google.com/khjdbgksdngksd#/","https://google.com/khjdbgksdngksd#/","'

【问题讨论】:

  • 换成什么?

标签: sql postgresql replace regexp-replace


【解决方案1】:

为什么要混合使用 TRANSLATE 和 REGEXP_REPLACE?只需选择一个并使用它,因为任何一个都可以为所欲为。

如果你想让 REGEXP_REPLACE 替换 所有 实例,你必须给它第四个参数(标志参数)'g' 来代表 'global',否则它会在第一次匹配和替换后停止.

另外,为了保持理智,当所引用的事物有单引号(你的引号相当多)时,我会使用美元引用。

使用 TRANSLATE 可能是更好的工作工具,但您的标题专门针对 REGEXP_REPLACE,所以:

REGEXP_REPLACE(links, $$[',"]$$, '', 'g');

【讨论】:

    【解决方案2】:

    为什么不直接使用replace()

    select replace(replace(replace(links, '"', ''), '''', ''), ',', '')
    

    或者更简单地说,使用translate()

    select translate(links, '"'',', '')
    

    【讨论】:

      猜你喜欢
      • 2018-06-19
      • 2021-01-30
      • 1970-01-01
      • 1970-01-01
      • 2013-12-14
      • 2013-02-16
      • 2013-08-25
      • 2011-01-23
      相关资源
      最近更新 更多