PostgreSQL中的regexp_replace

时间:2018-01-31 07:33:35

标签: postgresql

我想将E-*-[_]F*字符串替换为E-*-\_F*。我正在使用的代码如下。

select regexp_replace('E-*-[_]F*','-[\[(.)\]]', E'\\', 'g'); -- E-*\_]F*

我无法移除右括号。

1 个答案:

答案 0 :(得分:1)

假设您希望将大括号内的字符放在反斜杠之后:

jasen=#  select regexp_replace('E-*-[_]F*','-\[(.)\]', '\\\1', 'g');
 regexp_replace 
----------------
 E-*\_F*
(1 row)

该模式会在(.)-[之间查找任何字符] 括号使它记住了这个角色。

整个匹配的部分替换为反斜杠,由\\代表,后跟第一个(也是唯一的)记住的部分\1