REGEXP_REPLACE
📄字数 496
👁️阅读量 加载中...
功能描述
通过正则表达式匹配字符串中的模式,并将匹配部分替换为指定内容
语法格式
sql
REGEXP_REPLACE(expr1,expr2[,expr3[,expr4[,expr5[,expr6]]]])输入参数
expr1:源字符串,VARCHAR类型。expr2:正则表达式,VARCHAR类型。expr3: 可选参数,替换目标串(默认为空串),VARCHAR类型。expr4:可选参数,开始匹配的字符位置(默认为1),INTEGER类型。expr5: 可选参数,指定第几次匹配(默认为1),INTEGER类型。expr6:可选参数,匹配模式,VARCHAR类型,具体模式参考regexp_count。
输出结果
输出结果为VARCHAR类型,任意输入参数为NULL,输出结果为NULL。
示例
SQL
-- 示例1:将字符串'2023-08-01'中间的'-'替换为'08/01/2023'
SQL> SELECT REGEXP_REPLACE('2023-08-01', '(\d{4})-(\d{2})-(\d{2})', '\2/\3/\1') FROM dual;
+------------+
| EXPR1 |
+------------+
| 08/01/2023 |
+------------+
-- 示例2:将字符串'1234567890'前6位数字替换为'*'
SQL> SELECT REGEXP_REPLACE('1234567890', '\d(?=\d{4})', '*') FROM dual;
+------------+
| EXPR1 |
+------------+
| ******7890 |
+------------+