如何从postgresql中的字符串中删除特殊字符
Posted
技术标签:
【中文标题】如何从postgresql中的字符串中删除特殊字符【英文标题】:How to remove special characters from a string in postgresql 【发布时间】:2021-02-17 13:12:12 【问题描述】:我正在尝试使用 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","s":"G_1","cn":"C8","cn":"M2","gn":"G_2","cn":"CA99","c":"ME3","gn":"G_3","c":"CA00"] ','[[]":]','')
但收到几乎相同的字符串..
提前致谢!
【问题讨论】:
这看起来像一个 JSON 文本。为什么要从中删除结构? 【参考方案1】:您需要对特殊字符 (\
) 进行转义,并指定要对每个字符 ('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)
【讨论】:
ps:问题要求删除[]
,你的例子也删除了:"
,所以我按照你的例子..
您好JGH,非常感谢您的帮助,但正如您在评论中提到的,我需要继续:
(这意味着我给出的示例是错误的),必填结果应该如下:x:y,s:G_1,cn:C8,cn:M2,gn:G_2,cn:CA99,c:ME3,gn:G_3,c:CA00
@TalSibony 这样您就可以从 regex_replace 第二个参数 ('[\[\]"]'
) 中删除 :
噢,不,我看到它只需要从解决方案的第二个参数中删除 :
,非常感谢!以上是关于如何从postgresql中的字符串中删除特殊字符的主要内容,如果未能解决你的问题,请参考以下文章
从C#中的数据中删除特殊字符后如何将dbf文件中的数百万行数据上传到SQL Server
如何在一组字符串中删除 r 中的这些特殊字符:’s,…