如何从Postgresql中的字符串中删除特殊字符

问题描述

我正在尝试使用REGEXP_REPLACE删除以下特殊字符:"[]{}

来自以下文本字段:[{"x":"y","s":"G_1","cn":"C8"},{"cn":"M2","gn":"G_2","cn":"CA99"},{"c":"ME3","gn":"G_3","c":"CA00"}] 并一无所有,甚至没有空格。

*不用说,这只是一个示例字符串,我需要为相似但不同的字符串找到一致的解决方案。

我试图运行以下命令:SELECT REGEXP_REPLACE('[{"x":"y","c":"CA00"}] ','[{[}]":]','')

但是收到的字符串几乎相同。

谢谢!

解决方法

您需要转义特殊字符(\,并指定要对每个字符重复操作('g'),否则它将在第一个匹配项处停止

 SELECT REGEXP_REPLACE(
    '[{"x":"y","s":"G_1","cn":"C8"},{"cn":"M2","gn":"G_2","cn":"CA99"},{"c":"ME3","gn":"G_3","c":"CA00"}] ','[{\[}\]":]','','g');
                  regexp_replace
--------------------------------------------------
 xy,sG_1,cnC8,cnM2,gnG_2,cnCA99,cME3,gnG_3,cCA00
(1 row)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...