oracle的REGEXP_SUBSTR的用法

function REGEXP_SUBSTR(String, pattern, position, occurrence, modifier)
String     :需要进行正则处理的字符串
pattern   :进行匹配的正则表达式
position   :起始位置,从第几个字符开始正则表达式匹配(默认为1)
occurrence:标识第几个匹配组,默认为1
occurrence :模式('i'不区分大小写进行检索;'c'区分大小写进行检索。默认为'c'。)

----


2.量词:?用来匹配0和1个字符
*用来匹配0和多个字符
+用来匹配1和多个字符
A{3} 表示匹配3个字符A,
A{3,} 三个或者多个字符A
A{3,5}用来匹配3到5个字符A
量词匹配遵循贪婪原则,量词?可取消贪婪原则
3.字符转义和字符类
和其他字符进行组合(包含元字符)
单字符匹配; 换行 回车 制表符
多字符匹配;s匹配空白符(空格、制表、回车、换行)
d匹配数字
w匹配可组成的单词
【】用来定义字符的范围 【1,2】【0-9】【a-z】
^用来表示范围之外的字符【^a】
4.字符组
模式中的某些部分还可成为一个整体,用量词修饰
(123as)+ 用来匹配123as123as
编程语言中可用$1 $2用来获取第一个 第二个字符租
5.正则表达式分支 | d{4}|w{4} 类似于逻辑关系or
6.oracle 中应用
regexp_like(列或者表达式中获取的string,匹配的string)返回布尔值
regexp_instr(列或者表达式中得到的string,匹配表达式,匹配开始位置,匹配的第几次作为结果) 返回值为number
regexp_substr()
select id,regexp_substr(html,'http[a-zA-Z0-9.:/]*') url from html;
结果返回html 列中符合http[a-zA-Z0-9.:/]中的字符创
regexp_replace ()
select regexp_replace('09/07/2001' ,'^([0-9]{2})/([0-9]{2})/([0-9]{4}) $),'3-21') replace from dual;
([0-9]{2})/([0-9]{2})/([0-9]{4})匹配09/07/2001
3-21 重新排序输出缓存中的三个分组 并替换 09/07/2001

 

原文地址:https://www.cnblogs.com/thomasbc/p/11844806.html