Python如何从Postgres中的表替换指定的单词/字符

时间:2018-10-01 20:21:24

标签: python postgresql

我在postgres中有此表,我想替换一些单词/字符。 麻烦是问题。如您所见,其中有一些(::)和多余的单词。

我想将RIPE :: AS-RETN RIPE :: AS-RETN6更改为AS-RETN AS-RETN6和...

  ID           AS-SET
+=====+=====================================+
   1  +  RIPE::AS-RETN RIPE::AS-RETN6       +
+=====+=====================================+
   2  +  AS-EASYNET                         +
+=====+=====================================+
   3  +  RIPE                               +
+=====+=====================================+
   4  +  NTTCOM::AS-5713 NTTCOM::AS-5713-ZA +
+=====+=====================================+

结果应该是

  ID           AS-SET
+=====+=====================================+
   1  +  AS-RETN AS-RETN6                   +
+=====+=====================================+
   2  +  AS-EASYNET                         +
+=====+=====================================+
   3  +                                     +
+=====+=====================================+
   4  +  AS-5713 AS-5713-ZA                 +
+=====+=====================================+

因此,它删除了:和多余的空格以及RIPE一词。 有人可以帮忙吗!谢谢

1 个答案:

答案 0 :(得分:0)

regexp_replace可以满足您的需求。

尝试一下(更改表/列的名称以适合):

SELECT regexp_replace(as_set, '(RIPE::)|(RIPE ?)|(NTTCOM::)', '', 'g')
FROM my_table;

如果结果看起来不错,请运行更新:

UPDATE my_table
SET as_set = regexp_replace(as_set, '(RIPE::)|(RIPE ?)|(NTTCOM::)', '', 'g')