regexp_instr(source_string ,pattern,position,occurrence ,return_option ,match_parameter ) source_string:输入的字符串 pattern:正则表达式 position:标识从第几个字符开始正则表达式匹配。(默认为1) occurrence:标识第几个匹配组。(默认为1) return_option:0——返回第一个字符出现的位置。1:pattern下一个字符起始位置。 match_parameter:匹配模式
regexp_instr() select str, regexp_instr(str,'\.' ) ind , 默认从第一个字符开始查找,查找第一个.号,也可以匹配资格符合要求的字符串,写对匹配格式即可,不一定是单个字符 regexp_instr(str,'\.',1,2) ind , 从第1个字符开始,查找第二个.号所在的位置 regexp_instr(str,'\.',5,2) ind 从第五个字符开始,查找第二个.号的位置,注意最终查找到的字符和字符串的位置是相对于查找字符串的起始位置 fromtmp where id='instr'; STR IND IND IND --------------- ----- ----- ----- 192.168.0.1 4 8 10
select
regexp_instr('192.168.0.1','\.',1,level) ind , -- 点号. 所在的位置
regexp_instr('192.168.0.1','\d',1,level) ind -- 每个数字的位置
fromdual
connectbylevel <= 9 连续匹配目标字符串出现的第一次出现的位置,第二次出现的位置,直到第九次出现的位置
IND IND
----- -----
4 1
8 2
10 3
0 5
0 6
0 7
0 9
0 11 -- 第八个数字所在位置为 11 这里不存在第九个数字,匹配不到,返回的地址为0
0 0 -- 没有匹配到时返回为0 ,对应第一位是从1开始,而不是0 开始
REGEXP_SUBSTR(DEL_LINE_NUMBER,'[^.]+',1,1) -- 匹配前缀相同,第一个小数点前的字符 select str, regexp_substr(str,'[^,]+') str, regexp_substr(str,'[^,]+',1,1) str, 从第一位开始匹配,获得用逗号分隔字符串之后,第一个‘分割后的子串' regexp_substr(str,'[^,]+',1,2) str, -- occurrence 第几个匹配组 regexp_substr(str,'[^,]+',2,1) str -- position 从第几个字符开始匹配 fromtmp whereid='substr'; STR STR STR STR STR --------------- --------------- --------------- --------------- --------------- 123,234,345 123 123 234 23 12,34.56:78 12 12 34.56:78 2 123456789 123456789 123456789 逗号分割后不存在第二个 23456789(从第二位之后开始分割,没有就是取整体)
select
str,
regexp_replace(str,'020','GZ') str,
regexp_replace(str,'(\d{3})(\d{3})','<\2\1>') str -- 将第一、第二捕获组交换位置,用尖括号标识出来
fromtmp
whereid='replace';
STR STR STR
--------------- --------------- ---------------
(020)12345678 (GZ)12345678 (020)<456123>78
001517729C28 001517729C28 <517001>729C28
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有