日期:2014-05-16 浏览次数:20412 次
4.1.4 正则表达式函数。
\ 转义字符, ^ 匹配字符串开头位置, $ 匹配字符串结束位置,
*匹配前面字符0次或多次 + 匹配1次或多次, ?匹配0或1次,
{n} 匹配恰好n次, {n,m}匹配至少n至多m次 . 匹配除null之外任意字符
(pattern)匹配制定模式的一个子表达式。 x|y匹配x或y,xy是一个或多个字符
[abc] [a-z] [: :]指定一个字符类,可以匹配该类中的任何字符。
[:alphanum:]匹配0-9,A-Z,a-z [:alpha:]匹配A-Z,a-z
[:blank:] 匹配空格或tab键 [:digit:]匹配0-9
[:graph:] 匹配非空字符 [:print:]匹配非空字符和空格字符
[:lower:]匹配a-z [:upper:]匹配A-Z [:punct:]匹配标点符号
[:space:]匹配所有空白字符 [:xdigit:]匹配十六进制数字0-9,A-F,a-f
[..]匹配一个组合元素,如多字符元素。 [==]指定等价类
\n对前一次捕获的一个反向引用,n为正整数
Oracle 10g 新增的元字符:
\d数字字符 \D非数字字符 \w字母字符 \W非字母字符 \s空白字符 \S非空白字符
\A只匹配字符串的开头位置 \Z只匹配末尾或末尾换行符之前的位置
*?匹配前面的模式元素0次或多次 +?一次或多次 ??0次或1次
{n,}匹配前面模式元素至少n次
1、REGEXP_LIKE()
REGEXP_LIKE(x, pattern [,match_option]):在x中查找pattern参数中定义的正则表达式,
match_option可为:‘c'区分大小写(默认)
'I'不区分大小写
'n'允许使用可以匹配任意字符的字符串
'm'将x作为一个包含多行的字符串
例如检索名字以j或J开头的顾客:
SELECT * FROM customers WHERE REGEXP_LIKE( name ,'^j','i');
2、REGEXP_INSTR()
REGEXP_INSTR(x,pattern [,start [,occurrence [,return_option[,match_option [,subexp_option]]]]])用于x中查找pattern;返回pattern出现的位置,匹配从1开始。return_option说明该返回什么整数,若为0返回pattern中第一个字符的位置,若非0则返回pattern之后字符的位置。subexp_option是Oracle 11g新增的,对于具有子表达式的模式,subexp_option是0~9的之间的一个非负数,指出pattern中哪一个子表达式是函数的目标。
3、REGEXP_REPLACE()
REGEXP_REPLACE(x, pattern [, replace_string [, start [ ,occurrence [,match_option] ] ] ])在x中查找pattern并将其替换为replace_string。
4、REGEXP_SU