天天看点

Oracle中函数regexp_count及regexp_replace用法

一、REGEXP_COUNT ( source_char, pattern , position , match_param)

四个参数解释:

source:

需要用来进行分析的字符串,如  "aaaa","welcome","abc12cdg"  等
           

pattern:

字符(可以是正常字母数字等 a,1 等,也可以是正则表达式 /d /w  [a-z]等),整个函数的作用就是返回pattern在source中出现的次数值。
           

position:

从字符串的那个位置开始分析,可以省略,默认值是1
           

match_param:

‘i’ 用于不区分大小写的匹配
‘c’ 用于区分大小写的匹配
‘n’ 允许句点(.)作为通配符去匹配换行符。如果省略该参数,则句点将不匹配换行符
‘m’ 将源串视为多行。即Oracle 将^和$分别看作源串中任意位置任何行的开始和结束,而不是仅仅看作整个源串的开始或			  结束。如果省略该参数,则Oracle将源串看作一行。
‘x’ 忽略空格字符。默认情况下,空格字符与自身相匹配。
           

举例:

select REGEXP_COUNT('welcome','\w')   from DUAL;
           

二、REGEXP_REPLACE(VARCHAR str, VARCHAR pattern, VARCHAR replacement)

三个参数的解释:

str:

指定用来分析的字符串
           

pattern:

被替换的字符串,其中可以是 a,b,c之类的普通字符,也可以是正则表达式 [a-z]  /w   /d等
           

replacement:

用于替换的字符串
           

举例

select regexp_replace('welcome','e','vv') from dual;
select regexp_replace('welcome','[a-z]','vvv') as result from dual;