REGEXP_REPLACE函数常见用法

函数说明及示例

函数说明

REGEXP_REPLACE函数 (source_char, pattern,[replace_string,[ position,[occurrence,[match_param ] ] ] ])

参数说明:
string:被搜索的字符串
pattern:正则表达式内容
replace_string:用于替换匹配到的部分的字符串。如果不提供,将默认为空字符串
position:开始搜索的位置,默认为1,即从第一个字符开始搜索
occurrence:匹配出现的次数,如果n是0,将替换所有匹配项;n是大于0的正整数,则替换第n次出现字符
match_param:'i’指定不区分大小写的匹配;‘c’指定区分大小写;默认’c’

1.替换数字

问题:将字符串中的数字替换成‘*’

SELECT 
 REGEXP_REPLACE('Welcome,Tom!Your password is 123456', '[0-9]', '*') AS rep_string  
,REGEXP_REPLACE('Welcome,Tom!Your password is 123456', '[0-9]', '*', 1, 0, 'c') AS rep_c_string  
FROM dual; 

注意:
[position]:默认1,从第一个位置开始搜索
[occurrence]:默认0,即匹配到的全部替换
[match_param]:默认‘c’,即区分大小写

在这里插入图片描述

2.每位字符后增加空格

将城市名称中每个字符用空格分隔

SELECT
country_name
,REGEXP_REPLACE(country_name, '(.)', '\1 ') rep_string  
FROM countries;

注意:
‘(.)’:用于匹配输入字符串中的每一个字符;
'. ':代表任何单个字符
'() ':将匹配的每个字符捕获到一个组中,这样可以在替换字符串中引用
‘\1’: 是对第一个捕获组的引用,也就是原始字符串中的每一个匹配的字符;相应添加一个空格
结果如下:

在这里插入图片描述

3.替换空格

替换目标字符串中的空格

SELECT 
 REGEXP_REPLACE('Wel   come!	T   om!', '\s+', '') AS rep_string  
,REGEXP_REPLACE('Wel   come!	T   om!', '\s+', '',1,0,'c') AS rep_string  
FROM dual; 

注意:
‘\s+’ 用于匹配一个或多个空白字符
结果如下:

在这里插入图片描述

4.替换大小写字符

将目标字符串中的hello字符替换成‘*’

SELECT 
NAME
,REGEXP_REPLACE(NAME, '[a-z]', '*',1,0,'c') low_string
,REGEXP_REPLACE(NAME, '[A-Z]', '*',1,0,'c') uper_string
,REGEXP_REPLACE(NAME, '[a-z]', '*',1,0,'i') no_string
FROM strings;

注意:
‘[a-z]’ :用于匹配小写字母在a-z之间
‘[A-Z]’:用于匹配大写字母在A-Z之间
结果如下:

在这里插入图片描述

5.第几次匹配到的地方替换

SELECT 
NAME
,REGEXP_REPLACE(NAME, '[0-9]', '',1,1) fst_string --第一次匹配到字符
,REGEXP_REPLACE(NAME, '[0-9]', '',1,3) sed_string --第三次匹配到字符
,REGEXP_REPLACE(NAME, '[0-9]', '',1,5) tir_string --第五次匹配到字符
FROM STRINGS;

注意:
示例中’189-oracle-type-251’字符串的
[occurrence]=1,第一次出现的数字‘1’被替换
[occurrence]=3,第一次出现的数字‘9’被替换
[occurrence]=5,第一次出现的数字‘5’被替换
结果如下:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值