Postgresql regexp_replace() 反斜杠和双引号
Posted
技术标签:
【中文标题】Postgresql regexp_replace() 反斜杠和双引号【英文标题】:Postgresql regexp_replace() backslash and double quotes 【发布时间】:2019-12-05 06:16:05 【问题描述】:我正在尝试导入 JSON 文件,其中值包含这样的数据
"\"Koslov Git †girish\"Ges"
返回应该是"Koslov Git †girish Ges"
多余的\"
是麻烦
我尝试了REGEXP_REPLACE(values, '\\''+', '''', 'g')
,但没有成功。我怎样才能摆脱这个。注意不要替换第一个和最后一个双引号
【问题讨论】:
为什么要替换反斜杠转义的单引号(以及任何后续单引号)? 返回应该是"Koslov Git †girish Ges"
如果要删除双引号,为什么要替换单引号?
我在哪里替换单引号。如果我知道我做错了什么,我可能不会问这个问题
在你的正则表达式中。只有单引号。
【参考方案1】:
with data(json_object) as (
values ('"\"Koslov Git †girish\" Ges"'::jsonb)
)
select regexp_replace(json_object::text, '\\"', '', 'g')
from data;
Db<>fiddle.
【讨论】:
我也试过这个。但对象周围没有单引号。它是一个 json 对象。以上是关于Postgresql regexp_replace() 反斜杠和双引号的主要内容,如果未能解决你的问题,请参考以下文章
需要使用 regexp_replace (Postgresql) 将逗号添加到数字列表中
Postgresql regexp_replace() 反斜杠和双引号
postgresql varchar字段regexp_replace正则替换
Postgresql regexp_replace 替换所有数字