本篇文章主要介绍了" Oracle中的正则表达式及函数详解",主要涉及到方面的内容,对于Oracle感兴趣的同学可以参考一下:
转载请注明出处:http://blog.csdn.net/anxpp/article/details/51550486,谢谢!1、概述 相信大家对正则表...
- 'i' 用于不区分大小写的匹配。
- 'c' 用于区分大小写的匹配。
- 'n' 允许将句点“.”作为通配符来匹配换行符。如果省略改参数,句点将不匹配换行符。
- 'm' 将源串视为多行。即将“^”和“$”分别看做源串中任意位置任意行的开始和结束,而不是看作整个源串的开始或结束。如果省略该参数,源串将被看作一行来处理。
- 如果取值不属于上述中的某个,将会报错。如果指定了多个互相矛盾的值,将使用最后一个值。如'ic'会被当做'c'处理。
- 省略该参数时:默认区分大小写、句点不匹配换行符、源串被看作一行。
例1:
- select regexp_substr('MY INFO: Anxpp,22,and boy','my',1,1,'i')from users;
将返回MY,如果将match_parameter改为'c'将不反悔任何内容(null)。
例2:
- select regexp_substr('MY INFO: Anxpp,23,and boy','[[:digit:]]',1,2)from users;
此处会返回3。
注意这里同时用到了“[]”和“[:digit:]”。
2.2、REGEXP_INSTR
REGEXP_INSTR函数使用正则表达式返回搜索模式的起点和终点(整数)。如果没有发现匹配的值,将返回0。
语法:
- regexp_instr(source_string,pattern[,position[,occurrence[,return_option[,match_parameter]]]])
return_option:为0时,返回第一个字符出现的位置,与instr作用相同。为1时,返回所搜索字符出现以后下一个字符的位置。默认为0。
例1:
- select regexp_instr('MY INFO: Anxpp,23,and boy','[[:digit:]]')from users;
该例会返回16。
REGEXP_INSTR函数常常会被用到where子句中。
2.3、REGEXP_LIKE