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

          oracle10g正規表達式

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

          主站蜘蛛池模板: 皋兰县| 万安县| 陆川县| 永仁县| 海淀区| 谷城县| 双流县| 四平市| 思茅市| 房产| 台南县| 大名县| 玉田县| 肇源县| 潍坊市| 巴东县| 晋江市| 太原市| 左贡县| 陆良县| 潍坊市| 逊克县| 临夏市| 潢川县| 达尔| 夏邑县| 永吉县| 乐至县| 五台县| 黔江区| 凉城县| 嘉祥县| 叙永县| 长治县| 明溪县| 邵阳市| 西林县| 彝良县| 区。| 高清| 正镶白旗|