如何删除文本的第一个和最后一个字符?

问题描述 投票:0回答:4

我有一条记录被转换成这样的文本:

("{""ACC_CODE"":""0/000"",""ACC_DECIMAL"":2}"})

我想删除

(
)
以便我可以将文本转换为 json。 我该怎么做?

编辑:我不想使用修剪功能,因为原文中有

(
&
)
字符。

我只想删除

first
last
字符。

sql string postgresql text
4个回答
38
投票

你可以这样做:

select substr(col, 2, length(col) - 1)

10
投票
t=# select rtrim(ltrim('({()})','('),')');
 rtrim
-------
 {()}
(1 row)

ltrim 和 rtim 不接触里面的括号,就像修剪它本身一样:

t=# select trim('({()})','()');
 btrim
-------
 {()}
(1 row)

5
投票

从字符串中删除第一个字符

select substr(col, 2)

从字符串中删除最后一个字符

select substr(col,1, length(col)-1)
select reverse(substr(reverse(col),2)

4
投票

函数 regexp_replace() 对我有用。

例如删除最后 4 个字符:

select 
regexp_replace('300PRIZE28NOV20183333\%%3BS\.com', '....$', '') campaign_name;

------------------------------
 300PRIZE28NOV20183333\%%3BS\

(1 row)

-- 更一般,删除最后 8 个字符。

select 
regexp_replace('300PRIZE28NOV20183333\%%3BS\.com', '.{8}$', '') campaign_name;
      campaign_name       
--------------------------
 300PRIZE28NOV20183333\%%

(1 row)
© www.soinside.com 2019 - 2024. All rights reserved.