REGEXP_SUBSTR是对SUBSTR功能一种扩展, 类似于REGEXP_INSTR,但不是返回匹配字符串的位置,而是直接返回匹配的字符串.
返回值: VARCHAR2
or CLOB两种形式(与源字符串的字符集相同)
参数:
source_string: 源字符串, 即将要被查找的字符串
pattern: 正则表达式
position: 开始查找的位置,默认值为1
occurrence: 匹配的次数
match_parameter: 对函数的特殊要求. (如果使用了相互矛盾的参数,那么取最后的参数),
如果省略了这个参数,那么表示大小写敏感将由NLS_SORT参数决定,源字符串将看作一行, (.)也不会匹配回车换行符
--------------i: 大小写敏感
--------------c: 大小写不敏感
--------------n: 允许使用(.),即匹配任意字符,匹配回车换行字符. 如果省略这个参数,就表示不匹配回车换行符
--------------m: 同上, oracle会把源字符串当作是一个多行字符串,对于^和$是分别针对每一行,而不是整个源字符串的开始和结尾.
如果省略此参数,则表示源字符串是一行
SELECT REGEXP_SUBSTR('500 Oracle Parkway, Redwood Shores, CA', ',[^,]+,') "REGEXPR_SUBSTR" FROM DUAL; REGEXPR_SUBSTR ----------------- , Redwood Shores,
SELECT REGEXP_SUBSTR('http://www.oracle.com/products', 'http://([[:alnum:]]+\.?){3,4}/?') "REGEXP_SUBSTR" FROM DUAL; REGEXP_SUBSTR ---------------------- http://www.oracle.com/