posts - 0, comments - 77, trackbacks - 0, articles - 356
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

oracle10g正规表达式

Posted on 2008-02-24 17:24 semovy 阅读(331) 评论(0)  编辑  收藏 所属分类: Oracle数据库方面

-------------------------------------------正规表达式:-----------------------------------------------

正规表达式是符号和元素的集合,这些集合可以使用户匹配特定的文本模式。正规表达式采用元符号的组合来定义各种匹配和搜索标准。在正规表达式中,匹配是大小写敏感的。

元符号                  描述                           示例

*                 匹配0个或多个任意的字符         bd* 匹配bdqbdabc

                匹配一个任意的字符               B?d匹配 BDd,Bld

^                 表示字符串的开始                 ^abcabcedabcfracdv

$                 表示字符串的末尾                 bas$ bas为结尾的所有字符串

x|y                匹配xy                       windo|door表示windo或者dr

[]                 匹配[]中的任意一个字符           ba[a-b]匹配baa bab

{m}               可以匹配m                    m[0-9]{3}匹配m7m12m123                    

{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}));


只有注册用户登录后才能发表评论。


网站导航: