REGEXP_REPLACE 函数用于正则表达式替换。

语法

  1. REGEXP_REPLACE (source_char, pattern [,replace_string [, position [, occurrence [, match_param ] ] ] ])

参数

参数说明
source_char用作搜索值的字符表达式。它通常是一种字符列,数据类型可以是 CHARVARCHAR2NCHARNVARCHAR2CLOB
pattern是正则表达式 ,它通常是一个文本文字,数据类型可以是 CHARVARCHAR2NCHARNVARCHAR2
replace_string表示替换的字符,可以是 CHARVARCHAR2NCHARNVARCHAR2CLOB 类型。
position是一个正整数类型,指示 OceanBase 从第几个字符开始搜索 source_char 的字符,默认为 1,表示从第一个字符开始搜索 source_char
occurrence是一个非负整数,指示替换操作的发生,如果指定 0,则 OceanBase 替换所有匹配项;如果指定正整数 n,则 OceanBase 将替换第 n 次出现,默认为全部都替换掉,如果指定参数 0 也是全部匹配。
match_param是数据类型 VARCHAR2CHAR 的字符表达式,它允许您更改函数的默认匹配行为。i 表示大小写不敏感;c  表示大小写敏感;n  表示点号;. 表示不匹配换行符号;m   表示多行模式;x 表示忽略空格字符,默认情况下,空格字符会相互匹配。

返回类型

返回结果与 source_char 的数据类型相同。

示例

下面的示例检查字符串,查找两个或多个空格。OceanBase 用一个空间替换两个或多个空间的每一次出现。执行以下语句:

  1. SELECT REGEXP_REPLACE('500 OceanBase Parkway, Redwood Shores, CA', '( ){2,}', ' ') "REGEXP_REPLACE"
  2. FROM DUAL;

查询结果如下:

  1. REGEXP_REPLACE
  2. --------------------------------------
  3. 500 OceanBase Parkway, Redwood Shores, CA