原文在这: 戳
REGEXP_REPLACE
6个参数
第一个是输入的字符串
第二个是正则表达式
第三个是替换的字符
第四个是标识从第几个字符开始正则表达式匹配。(默认为1)
第五个是标识第几个匹配组。(默认为全部都替换掉)
第六个是是取值范围:
i:大小写不敏感;
c:大小写敏感;
n:点号 . 不匹配换行符号;
m:多行模式;
x:扩展模式,忽略正则表达式中的空白字符。
全部测试数据
SQL> select * from test_reg_substr;
A
-----------------------------------
ABC123XYZ
ABC123XYZ456
Edward
替换数字
SQL> SELECT
2 REGEXP_REPLACE (a,'[0-9]+','QQQ') AS A
3 FROM
4 test_reg_substr;
A
-----------------------------------------------
ABCQQQXYZ
ABCQQQXYZQQQ
Edward
替换数字(从第一个字母开始匹配,替换第1个匹配项目)
SQL> SELECT
2 REGEXP_REPLACE (a,'[0-9]+','QQQ', 1, 1) AS A
3 FROM
4 test_reg_substr;
A
------------------------------------------------------
ABCQQQXYZ
ABCQQQXYZ456
Edward
替换数字(从第一个字母开始匹配,替换第2个匹配项目)
SQL> SELECT
2 REGEXP_REPLACE (a,'[0-9]+','Q', 1, 2) AS A
3 FROM
4 test_reg_substr;
A
---------------------------------------------------
ABC123XYZ
ABC123XYZQ
Edward
替换第二个单词
SQL> SELECT
2 REGEXP_REPLACE (a,'w+','Kimi', 1, 2) AS A
3 FROM
4 test_reg_substr;
A
---------------------------------------------------
ABC123XYZ
ABC123XYZ456
Kimi