Oracle的SUBSTR()和INSTR()以及REGEXP_SUBSTR()函数的用法

substr(字符串,截取开始位置,截取长度) //返回截取的字
substr('Hello World',0,1) //返回结果为 'H'  *从字符串第一个字符开始截取长度为1的字符串
substr('Hello World',1,1) //返回结果为 'H'  *0和1都是表示截取的开始位置为第一个字符
substr('Hello World',2,4) //返回结果为 'ello'
substr('Hello World',-3,3)//返回结果为 'rld' *负数(-i)表示截取的开始位置为字符串右端向左数第i个字符

测试:

select substr('Hello World',-3,3) value from dual;


instr('源字符串' , '目标字符串' ,'开始位置','第几次出现')//返回截取到的字符的位置

instr('123-客户原因','-')    //返回结果为4

instr('123-客户原因','/')   //返回结果为0。目标字符串不存在返回0

测试:

select instr('123-客户原因','-') from dual;

截取'123-客户原因'格式中‘-’前面的字符串测试:

select substr('123-错发',0,instr('123-错发','-')-1) from dual


regexp_substr(String, pattern, position, occurrence, modifier)
srcstr:需要进行正则处理的字符串
pattern:进行匹配的正则表达式
position:起始位置,从第几个字符开始正则表达式匹配(默认为1)
occurrence:标识第几个匹配组,默认为1
modifier:模式('i'不区分大小写进行检索;'c'区分大小写进行检索。默认为'c'。)
测试:
select regexp_substr('7555AAF','[0-9]+') from dual; //返回7555,截取前面的数字

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值