oracle 10g中引入了正则表达式这一新特性。
下面首先了解一下正则表达式元字符的含义。
* 匹配零个或多个匹配项
| 用于指定选择性匹配项的选择性运算符
^/$ 匹配行的开头/结尾
[] 用于匹配列表(匹配该列表中的任何表达式)的方括号表达式
[^exp] 如果脱字符位于方括号内部,则对表达式取非。
{m} 精确匹配 m 次
{m,n} 至少匹配 m 次,但不超过 n 次
[: :] 指定一个字符类并匹配该类中的任何字符
[:alphanum:]可以匹配字符0-9、A-Z、a-z
[:alpha:]可以匹配字符A-Z、a-z
[:blank:]可以匹配空格或tab键
[:digit:]可以匹配数字0-9
[:graph:]可以匹配非空字符
[:lower:]可以匹配小写字母a-z
[:print:]与[:graph:]类似,不同之处在于[:print:]包括空格字符
[:punct:]可以匹配标点符号.,""等等
[:space:]可以匹配所有的空字符
[:upper:]可以匹配大写字母A-Z
[:xdigit:]可以匹配十六进制数字0-9、A-F、a-f
\ 可以有四种不同的含义:(1) 表示其自身;(2) 引用下一个字符;
(3) 引入一个运算符;(4) 不执行任何操作
+ 匹配一个或多个匹配项
? 匹配零个或一个匹配项
. 匹配所支持字符集中的任何字符(NULL 除外)
() 对表达式进行分组(视作一个子表达式)
\n 向后引用表达式
[==] 指定等价类
[..] 指定一个对照元素(如多字符元素)
oracle提供了以下正则表达式函数:
1、REGEXP_LIKE:
类似于 LIKE 运算符,但执行正则表达式匹配而不是简单的模式匹配,语法如下:
REGEXP_LIKE(srcstr, pattern [,match_option])
其中
srcstr:搜索值
pattern:正则表达式
match_option:用于更改默认匹配的选项,取值如下:
'c'说明在进行匹配时区分大小写(缺省值);
'i'说明在进行匹配时不区分大小写;
'n'允许使用可以匹配任意字符的操作符;
'm'将x作为一个包含多行的字符串
2、REGEXP_INSTR:在给定字符串中搜索某个正则表达式模式,并返回匹配项的位置,语法如下:
REGEXP_INSTR(srcstr, pattern [, position [, occurrence [, return_option [, match_option]]]])
其中
srcstr:搜索值
pattern:正则表达式
position:搜索起始位置
occurrence:要搜索的匹配项
return_option:指示匹配项的开头或结尾位置
match_option:用于更改默认匹配的选项
3、REGEXP_REPLACE:搜索某个正则表达式模式并使用替换字符串替换它,语法如下:
REGEXP_REPLACE(srcstr, pattern [,replacestr [, position [, occurrence [, match_option]]]])
其中
srcstr:搜索值
pattern:正则表达式
replacestr:替换模式的字符串
position:搜索起始位置
occurrence:要搜索的匹配项
match_option:用于更改默认匹配的选项
4、REGEXP_SUBSTR:在给定字符串中搜索某个正则表达式模式并返回匹配的子字符串,语法如下:
REGEXP_SUBSTR(srcstr, pattern [, position [, occurrence [, match_option]]])
其中
srcstr:搜索值
pattern:正则表达式
position:搜索起始位置
occurrence:要搜索的匹配项
match_option:用于更改默认匹配的选项
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8367589/viewspace-433128/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/8367589/viewspace-433128/