隨筆 - 6  文章 - 129  trackbacks - 0
          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          常用鏈接

          留言簿(14)

          隨筆檔案(6)

          文章分類(lèi)(467)

          文章檔案(423)

          相冊(cè)

          收藏夾(18)

          JAVA

          搜索

          •  

          積分與排名

          • 積分 - 827593
          • 排名 - 49

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          /*
          ORACLE中的支持正則表達(dá)式的函數(shù)主要有下面四個(gè):
          1,REGEXP_LIKE :與LIKE的功能相似
          2,REGEXP_INSTR :與INSTR的功能相似
          3,REGEXP_SUBSTR :與SUBSTR的功能相似
          4,REGEXP_REPLACE :與REPLACE的功能相似
          它們?cè)谟梅ㄉ吓cOracle SQL 函數(shù)LIKE、INSTR、SUBSTR 和REPLACE 用法相同,
          但是它們使用POSIX 正則表達(dá)式代替了老的百分號(hào)(%)和通配符(_)字符。
          POSIX 正則表達(dá)式由標(biāo)準(zhǔn)的元字符(metacharacters)所構(gòu)成:
          '^' 匹配輸入字符串的開(kāi)始位置,在方括號(hào)表達(dá)式中使用,此時(shí)它表示不接受該字符集合。
          '$' 匹配輸入字符串的結(jié)尾位置。如果設(shè)置了 RegExp 對(duì)象的 Multiline 屬性,則 $ 也匹
          配 '\n' 或 '\r'。
          '.' 匹配除換行符之外的任何單字符。
          '?' 匹配前面的子表達(dá)式零次或一次。
          '+' 匹配前面的子表達(dá)式一次或多次。
          '*' 匹配前面的子表達(dá)式零次或多次。
          '|' 指明兩項(xiàng)之間的一個(gè)選擇。例子'^([a-z]+|[0-9]+)$'表示所有小寫(xiě)字母或數(shù)字組合成的
          字符串。
          '( )' 標(biāo)記一個(gè)子表達(dá)式的開(kāi)始和結(jié)束位置。
          '[]' 標(biāo)記一個(gè)中括號(hào)表達(dá)式。
          '{m,n}' 一個(gè)精確地出現(xiàn)次數(shù)范圍,m=<出現(xiàn)次數(shù)<=n,'{m}'表示出現(xiàn)m次,'{m,}'表示至少
          出現(xiàn)m次。
          \num 匹配 num,其中 num 是一個(gè)正整數(shù)。對(duì)所獲取的匹配的引用。
          字符簇:
          [[:alpha:]] 任何字母。
          [[:digit:]] 任何數(shù)字。
          [[:alnum:]] 任何字母和數(shù)字。
          [[:space:]] 任何白字符。
          [[:upper:]] 任何大寫(xiě)字母。
          [[:lower:]] 任何小寫(xiě)字母。
          [[:punct:]] 任何標(biāo)點(diǎn)符號(hào)。
          [[:xdigit:]] 任何16進(jìn)制的數(shù)字,相當(dāng)于[0-9a-fA-F]。
          各種操作符的運(yùn)算優(yōu)先級(jí)
          \轉(zhuǎn)義符
          (), (?:), (?=), [] 圓括號(hào)和方括號(hào)
          *, +, ?, {n}, {n,}, {n,m} 限定符
          ^, $, anymetacharacter 位置和順序
          |
          */
          --創(chuàng)建表
          create table fzq
          (
            id varchar(4),
            value varchar(10)
          );
          --數(shù)據(jù)插入
          insert into fzq values
          ('1','1234560');
          insert into fzq values
          ('2','1234560');
          insert into fzq values
          ('3','1b3b560');
          insert into fzq values
          ('4','abc');
          insert into fzq values
          ('5','abcde');
          insert into fzq values
          ('6','ADREasx');
          insert into fzq values
          ('7','123  45');
          insert into fzq values
          ('8','adc  de');
          insert into fzq values
          ('9','adc,.de');
          insert into fzq values
          ('10','1B');
          insert into fzq values
          ('10','abcbvbnb');
          insert into fzq values
          ('11','11114560');
          insert into fzq values
          ('11','11124560');
          --regexp_like
          --查詢value中以1開(kāi)頭60結(jié)束的記錄并且長(zhǎng)度是7位
          select * from fzq where value like '1____60';
          select * from fzq where regexp_like(value,'1....60');
          --查詢value中以1開(kāi)頭60結(jié)束的記錄并且長(zhǎng)度是7位并且全部是數(shù)字的記錄。
          --使用like就不是很好實(shí)現(xiàn)了。
          select * from fzq where regexp_like(value,'1[0-9]{4}60');
          -- 也可以這樣實(shí)現(xiàn),使用字符集。
          select * from fzq where regexp_like(value,'1[[:digit:]]{4}60');
          -- 查詢value中不是純數(shù)字的記錄
          select * from fzq where not regexp_like(value,'^[[:digit:]]+$');
          -- 查詢value中不包含任何數(shù)字的記錄。
          select * from fzq where regexp_like(value,'^[^[:digit:]]+$');
          --查詢以12或者1b開(kāi)頭的記錄.不區(qū)分大小寫(xiě)。
          select * from fzq where regexp_like(value,'^1[2b]','i');
          --查詢以12或者1b開(kāi)頭的記錄.區(qū)分大小寫(xiě)。
          select * from fzq where regexp_like(value,'^1[2B]');
          -- 查詢數(shù)據(jù)中包含空白的記錄。
          select * from fzq where regexp_like(value,'[[:space:]]');
          --查詢所有包含小寫(xiě)字母或者數(shù)字的記錄。
          select * from fzq where regexp_like(value,'^([a-z]+|[0-9]+)$');
          --查詢?nèi)魏伟瑯?biāo)點(diǎn)符號(hào)的記錄。
          select * from fzq where regexp_like(value,'[[:punct:]]');
          /*
          理解它的語(yǔ)法就可以了。其它的函數(shù)用法類(lèi)似。
          */
          作者:唐山人,姓方,索性就叫tshfang。喜歡計(jì)算機(jī),喜歡讀書(shū)尤其是史書(shū)。技術(shù)共享,大家方便,讓我們一起創(chuàng)造一個(gè)自由空間。
          工作領(lǐng)域:ERP系統(tǒng)、計(jì)算機(jī)編程
          文章來(lái)源:泥胚文章寫(xiě)作網(wǎng) http://www.nipei.com   原文地址:http://www.nipei.com/article/9865
          轉(zhuǎn)載本文章必須保留作者、出處鏈接以及本聲明。
          轉(zhuǎn)載不注明出處、程序采集是侵權(quán)行為,我們保留追究其一切責(zé)任的權(quán)利。

          posted on 2010-02-20 08:48 Ke 閱讀(310) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): oracle
          主站蜘蛛池模板: 苍南县| 紫云| 卓尼县| 太仓市| 定兴县| 嘉峪关市| 元江| 临汾市| 重庆市| 阿拉善盟| 勐海县| 霍山县| 资阳市| 宁德市| 濮阳县| 博罗县| 合江县| 黄龙县| 元江| 延长县| 梅州市| 金乡县| 太和县| 沅江市| 资溪县| 台安县| 鞍山市| 襄垣县| 陕西省| 南充市| 青冈县| 泽普县| 莱州市| 小金县| 昌江| 新邵县| 昌吉市| 长岭县| 林州市| 隆昌县| 开平市|