posts - 0, comments - 77, trackbacks - 0, articles - 356
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          oracle10g正規表達式

          Posted on 2008-02-24 17:24 semovy 閱讀(337) 評論(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}));

          主站蜘蛛池模板: 永新县| 龙门县| 潍坊市| 商丘市| 屏边| 绥棱县| 监利县| 浠水县| 许昌县| 开化县| 四子王旗| 贵德县| 陆河县| 方山县| 岑巩县| 枝江市| 汉沽区| 白玉县| 静海县| 襄城县| 景洪市| 晋城| 通江县| 体育| 金门县| 邹城市| 鹿泉市| 晋州市| 巴林右旗| 安阳市| 扬中市| 苍南县| 南陵县| 濉溪县| 克山县| 成安县| 甘肃省| 虞城县| 海安县| 岐山县| 社旗县|