我想将E-*-[_]F*
字符串替换为E-*-\_F*
。我正在使用的代码如下。
select regexp_replace('E-*-[_]F*','-[\[(.)\]]', E'\\', 'g'); -- E-*\_]F*
我无法移除右括号。
答案 0 :(得分:1)
假设您希望将大括号内的字符放在反斜杠之后:
jasen=# select regexp_replace('E-*-[_]F*','-\[(.)\]', '\\\1', 'g');
regexp_replace
----------------
E-*\_F*
(1 row)
该模式会在(.)
和-[
之间查找任何字符]
括号使它记住了这个角色。
整个匹配的部分替换为反斜杠,由\\
代表,后跟第一个(也是唯一的)记住的部分\1
。