问题描述
我正在尝试使用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)