原文在這: 戳
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