-------------------------------------------正规表达式:-----------------------------------------------
正规表达式是符号和元素的集合,这些集合可以使用户匹配特定的文本模式。正规表达式采用元符号的组合来定义各种匹配和搜索标准。在正规表达式中,匹配是大小写敏感的。
元符号 描述 示例
* 匹配0个或多个任意的字符 bd* 匹配bdq,bdabc
? 匹配一个任意的字符 B?d匹配 BDd,Bld
^ 表示字符串的开始 ^abc与abced,abcfr可acdv
$ 表示字符串的末尾 bas$ 以bas为结尾的所有字符串
x|y 匹配x或y windo|door表示windo或者dr
[] 匹配[]中的任意一个字符 ba[a-b]匹配baa 或bab
{m} 可以匹配m次 m[0-9]{3}匹配m7,m12,m123
{m,n} 至少m次最多n次
\n 表示前一个表达式可以重复N 次 [aeiou]\2 匹配aatldf 但abldf
[::] 指定一个字符类,匹配该类中的任意一个字符
使用正规表达式:
函数 描述
Regexp_like() 类似于like运算符,可以使用正规表达式执行模式匹配操作
Regexp_instr() instr运算的扩张,可以用来搜索匹配正规表达式模式的输入字符串
Regexp_replace() replace的扩展,用户搜索符合正规表达式模式的输入字符串,并用指定的字符代替这些字符串
Regexp_substr() substr函数的扩展,用户搜索符合正规表达式模式的输入字符串,输出是这些搜索到的字符串
说明:
一:Regexp_like(search_string,pattern [,match_option]);
(1):search_string是搜索值
(2):parrern 是使用得正规表达式且其长度限制在512字节内
(3)match_option:是一个文本串,可以使用户设置该函数的匹配行为
Match_option参数表:
值 描述
C 匹配时,大小写敏感,是默认设置
I 匹配时,大小写不敏感
N 允许使用圆点(。)匹配任何新增的字符
M
Eg:
Select author_id,last_name from author where regexp_liek(last_name,’e$’);--搜索以e结尾的作者姓名
二:regexp_instr(search_string,pattern,[,position [,occurrence [,return_option [,match_option ]]]]);
(1) :search_string是搜索值
(2):parrern 是使用得正规表达式且其长度限制在512字节内
(3)position 是一个表示搜索开始位置的正整数,默认为一。
(4)occurrence定义了搜索模式的发生次数,默认为一,
(5)return_optionshi 是一个数字,表示该函数应该返回的值。该数字可以是0(表示开始匹配的位置)也可以是非0(表示匹配的结束位置)
(6)match_option 是设置该函数匹配行为的参数
Eg:
Select regexp_instr(‘orcale database 10g’,’a’,1,2) from dual;
三:
regexp_replace((search_string,pattern,[,position[,occurrence[,return_option [,match_option ]]]]);
(1) :search_string是搜索值
(2):parrern 是使用得正规表达式且其长度限制在512字节内
(3)position 是一个表示搜索开始位置的正整数,默认为一。
(4)occurrence定义了搜索模式的发生次数,默认为一,
(5)return_optionshi 是一个数字,表示该函数应该返回的值。该数字可以是0(表示开始匹配的位置)也可以是非0(表示匹配的结束位置)
(6)match_option 是设置该函数匹配行为的参数
)
Select last_name,regexp_replace(last_name,’e’,’E’) from duthors where author_id<3
四:
Regexp_substr(seach_string,pattern [,position ,[,occurrence [,match_option]]])
(1) :search_string是搜索值
(2):parrern 是使用得正规表达式且其长度限制在512字节内
(3)position 是一个表示搜索开始位置的正整数,默认为一。
(4)occurrence定义了搜索模式的发生次数,默认为一,
(5)match_option 是设置该函数匹配行为的参数
Eg:
Select last_name,regexp_substr(last_name,’[rst][a-z]{4}’) from authors where length(regexp_sustr(last_name,[rst][a_z]{4}));