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.字符转义和字符类
\和其他字符进行组合(包含元字符)
单字符匹配;\n 换行 \r 回车 \t制表符
多字符匹配;\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-\2\1') replace from dual;
([0-9]{2})/([0-9]{2})/([0-9]{4})匹配09/07/2001
\3-\2\1 重新排序输出缓存中的三个分组 并替换 09/07/2001