REGEXP_REPLACE
函数用于正则表达式替换。
语法
REGEXP_REPLACE (source_char, pattern [,replace_string [, position [, occurrence [, match_param ] ] ] ])
参数
参数 | 说明 |
source_char | 用作搜索值的字符表达式。它通常是一种字符列,数据类型可以是 CHAR 、VARCHAR2 、NCHAR 、NVARCHAR2 或 CLOB 。 |
pattern | 是正则表达式 ,它通常是一个文本文字,数据类型可以是 CHAR 、VARCHAR2 、NCHAR 或 NVARCHAR2 。 |
replace_string | 表示替换的字符,可以是 CHAR 、VARCHAR2 、NCHAR 、NVARCHAR2 或 CLOB 类型。 |
position | 是一个正整数类型,指示 OceanBase 从第几个字符开始搜索 source_char 的字符,默认为 1,表示从第一个字符开始搜索 source_char 。 |
occurrence | 是一个非负整数,指示替换操作的发生,如果指定 0,则 OceanBase 替换所有匹配项;如果指定正整数 n,则 OceanBase 将替换第 n 次出现,默认为全部都替换掉,如果指定参数 0 也是全部匹配。 |
match_param | 是数据类型 VARCHAR2 或 CHAR 的字符表达式,它允许您更改函数的默认匹配行为。i 表示大小写不敏感;c 表示大小写敏感;n 表示点号;. 表示不匹配换行符号;m 表示多行模式;x 表示忽略空格字符,默认情况下,空格字符会相互匹配。 |
返回类型
返回结果与 source_char
的数据类型相同。
示例
下面的示例检查字符串,查找两个或多个空格。OceanBase 用一个空间替换两个或多个空间的每一次出现。执行以下语句:
SELECT REGEXP_REPLACE('500 OceanBase Parkway, Redwood Shores, CA', '( ){2,}', ' ') "REGEXP_REPLACE"
FROM DUAL;
查询结果如下:
REGEXP_REPLACE
--------------------------------------
500 OceanBase Parkway, Redwood Shores, CA