REGEXP_SUBSTR函数

REGEXP_SUBSTR函数

REGEXP_SUBSTR函数

函数说明,该函数可以使用正则表达式来截取字符串

REGEXP_SUBSTR(string, pattern, [position], [occurrence], [match_param],[subexpr])

string:用来被搜索的目标字符
pattern:正则表达式内容
position:起始位置,默认值为1,即从第一个字符开始搜索
occurrence:出次数,默认为1,即第一个匹配项
match_param:针对的是正则表达式里字符大小写的匹配
【'i’不区分大小写进行检索; ‘c’区分大小写进行检索】 【默认为’c’】
subexpr :对于带有子表达式的模式,subexpr 是一个从 0 到 9 的非负整数,指示函数将返回 pattern 中的哪个子表达式

1.示例1,展示REGEXP_SUBSTR(string, pattern, [position], [occurrence])前四个参数运行效果

SELECT 
NAME
,REGEXP_SUBSTR(NAME,'[0-9]+') AS a		--匹配首次出现数字的字符
,REGEXP_SUBSTR(NAME,'[0-9]+',6) AS b	--从第6个位置开始匹配出现数字的字符
,REGEXP_SUBSTR(NAME,'[0-9]+',1,1) AS c	--匹配首次出现数字的字符
,REGEXP_SUBSTR(NAME,'[0-9]+',1,2) AS d	--匹配第二次出现数字的字符
FROM EXPS

结果如下:

在这里插入图片描述

2、示例2,展示REGEXP_SUBSTR中[match_param]参数运行效果

SELECT 
NAME
,REGEXP_SUBSTR(NAME,'(ORACLE)',1,1,'i') AS e --i不区分大小写
,REGEXP_SUBSTR(NAME,'(ORACLE)',1,1,'c') AS f --c区分大小写
,REGEXP_SUBSTR(NAME,'(oracle)',1,1,'c') AS g --c区分大小写
,REGEXP_SUBSTR(NAME,'(oracle)',1,1) AS h	 --默认c区分大小写
FROM EXPS  

结果如下:

在这里插入图片描述

3、示例3,展示REGEXP_SUBSTR中[subexpr]参数运行效果;

注意:NULL,代表默认参数,即默认’c’匹配大小写

SELECT 
NAME
,REGEXP_SUBSTR(NAME,'(\d+)(com+)',1,1,NULL,1) AS i --匹配首次出现数字的字符
,REGEXP_SUBSTR(NAME,'(\d+)(com+)',1,1,NULL,2) AS j --匹配首次出现[com+]的字符
,REGEXP_SUBSTR(NAME,'(\d+)(com+)',1,2,NULL,1) AS k --匹配第二次出现数字的字符
,REGEXP_SUBSTR(NAME,'(\d+)(com+)',1,2,NULL,2) AS l --匹配第二次出现[com+]的字符
FROM EXPS

结果如下:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值