数据仓库服务 GAUSSDB(DWS)-字符处理函数和操作符:regexp_replace(string, pattern, replacement [,flags ])
regexp_replace(string, pattern, replacement [,flags ])
描述:替换匹配POSIX正则表达式的子字符串。 如果没有匹配pattern,那么返回不加修改的string串。 如果有匹配,则返回的string串里面的匹配子串将被replacement串替换掉。
replacement串可以包含\n, 其中\n是1到9, 表明string串里匹配模式里第n个圆括号子表达式的子串应该被插入, 并且它可以包含\&表示应该插入匹配整个模式的子串。
可选的flags参数包含零个或多个改变函数行为的单字母标记,见下表。
选项 |
描述 |
---|---|
g |
表示替换每一个匹配的子字符串而不仅仅是第一个(默认仅替换第一个匹配的子字符串) |
B |
默认情况下使用Henry Spencer正则库及其正则语法。指定B选项后,表示优先选用boost regex正则库及其正则语法。 以下两种情况在指定了B选项时,也会自动转换为选择Henry Spencer正则库及其正则语法:
|
b |
表示按照BRE(POSIX Basic Regular Expression)匹配模式的规则进行匹配。 |
c |
大小写敏感匹配 |
e |
表示按照ERE(POSIX Extended Regular Expression)匹配模式的规则进行匹配。当b和e都未指定时,如果选用的是Henry Spencer正则库,则按照ARE(Advanced Regular Expression,类似于Perl Regular Expression)匹配模式的规则进行匹配;如果选用的是boost regex正则库,则按照Perl Regular Expression匹配模式的规则进行匹配。 |
i |
大小写不敏感匹配 |
m |
换行敏感匹配,与选项n同义。 |
n |
换行敏感匹配。此选项生效时,换行符影响元字符(.、^、$和[^)的匹配。 |
p |
部分换行敏感匹配,此选项生效时,换行符影响元字符(.和[^)的匹配。部分是相对选项n而言。 |
q |
重置正则表达式为加双引号的文本字符串,所有都是普通字符。 |
s |
非换行敏感匹配。 |
t |
紧凑语法(缺省)。该选项生效时,所有字符都很重要。 |
w |
反部分换行敏感匹配,此选项生效时,换行符影响元字符(^和$)的匹配。部分是相对选项n而言。 |
x |
扩展语法。与紧凑语法相对,在扩展的语法中,正则表达式中的空白字符被忽略。空白字符包括空格、水平制表符、新行、和任何属于space字符表的字符。 |
返回值类型:varchar
示例:
1 2 3 4 5 6 7 8 9 10 |
SELECT regexp_replace('Thomas', '.[mN]a.', 'M'); regexp_replace ---------------- ThM (1 row) SELECT regexp_replace('foobarbaz','b(..)', E'X\\1Y', 'g') AS RESULT; result ------------- fooXarYXazY (1 row) |