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 |
+------------+