regexp_replace()

使用正则表达式替换字符串中值的函数

regexp_replace() 是一个系统函数,用于使用 POSIX 正则表达式替换字符串中匹配的值。

regexp_replace()PostgreSQL 8.1 中添加。

用法

regexp_replace ( string text, pattern text, replacement text [, flags text ] ) → text

PostgreSQL 15 及更高版本

regexp_replace ( string text, pattern text, replacement text [, start integer ] [, flags text ] ) → text
regexp_replace ( string text, pattern text, replacement text, start integer, N integer [, flags text ] ) → text

命名参数从 PostgreSQL 18 开始可用。

可与 regexp_replace() 一起使用的标志列表可在 PostgreSQL 文档中找到:ARE 嵌入式选项字母

变更历史

示例

regexp_replace() 的基本执行示例

postgres=# SELECT regexp_replace('foobar', 'f\w\w', 'moo');
 regexp_replace 
----------------
 moobar
(1 row)

使用 'g'(“全局”)标志替换模式的多个出现

postgres=# SELECT regexp_replace('foobarboo flooobiloo', 'o{2,}', 'uu', 'g');
   regexp_replace    
---------------------
 fuubarbuu fluubiluu
(1 row)

在 **PostgreSQL 15** 及更高版本中,可以可选地指定起始位置

postgres=# SELECT regexp_replace('foobarboo flooobiloo', 'o{2,}', 'uu', 3);
    regexp_replace    
----------------------
 foobarbuu flooobiloo
(1 row)

要替换从指定起始位置开始的所有出现,请使用

postgres=# SELECT regexp_replace('foobarboo flooobiloo', 'o{2,}', 'uu', 3, 0, 'g');
   regexp_replace    
---------------------
 foobarbuu fluubiluu
(1 row)

分类

字符串操作, 系统函数

另请参阅

replace()translate()regexp_match()regexp_matches()

反馈

提交对“regexp_replace()”的任何评论、建议或更正,请点击此处