<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    瘋狂

    STANDING ON THE SHOULDERS OF GIANTS
    posts - 481, comments - 486, trackbacks - 0, articles - 1
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    Oracle正則表達式的用法(轉)

    Posted on 2012-06-26 11:12 瘋狂 閱讀(3520) 評論(1)  編輯  收藏

    l        方括號表達示

    方括號表達式

    描述

    [[:alnum:]]

    字母和數字混合的字符

    [[:alpha:]]

    字母字符

    [[:cntrl:]]

    控制字符

    [[:digit:]]

    數字字符

    [[:graph:]]

    圖像字符

    [[:lower:]]

    小寫字母字符

    [[:print:]]

    打印字符

    [[:punct:]]

    標點符號字符

    [[:space:]]

    空格字符

    [[:upper:]]

    大寫字母字符

    [[:xdigit:]]

    十六進制數字字符

     

    l        元字符

    元字符

    描述

    *

    如果有前面字符串的0次以上出現時匹配

    +

    如果有前面字符串的1次以上出現時匹配

    {m}

    m是整數。它文本中找出給定子表達式的恰好m次出現

    {n}?

    前面的字符串只出現一次時匹配

    {m,}

    M是整數。它在文本中找出給定子表達示的至少m次出現

    {n,}?

    匹配前面的字符串至少n

    {m,n}

    Mn是整數。它在文本中找出給定子表達示的mn次出現

    {n,m}

    匹配前面的字符串至少到n次,但不多于m

    c

    查詢操作區分大小寫

    i

    查詢操作不區分大水寫

    m

    多行字符串上的查詢,在源字符串包含多行時,該查詢允許用(^)模式匹配字符串的開始

    n

    通常匹配單個字符,也可以匹配新行

    x

    需要忽略正則表達示中的空格字符時,使用參數‘X

    \A

    匹配字符串首,而不是行首,因而多行字符串不能匹配每一行

    \d

    匹配任意數字字符

    \D

    匹配任意非數字字符

    \s

    匹配任意空格字符

    \S

    匹配任意非空格字符

    \w

    匹配任意字符和數字。該字符和[:alnum:]之間的不同是\w包括下劃線字符

    \W

    匹配任意非空字符串

    *

    通配符。找出在文本中包含0或多次給定子表達式出現的記錄

    +

    找出在文本中包含1或多次給定子表達式出現的記錄

    找出在文本中包含0次或1次給定子表達示出現的記錄

    .

    匹配文本中的任意字符

     ^

    錨。如果該字符后的表達式出現在行首,則匹配成功

    $

    錨。如果該字符后的表達式出現在行首,則匹配成功

    |

    分隔符,使用方法和OR相同

    (….)

    分組子表達式

     

    l        正則表達式運算符和函數

     

    a)     REGEXP_SUBSTR

    REGEXP_SUBSTR為指定字符串的一部分與正則表達式建立匹配。語法如下:

    REGEXP_SUBSTR(source_string,

    pattern,

    start_position,

    occurrence,

    match_parameter)

    其中source_string是必須的。可以是帶引號的字符串或者變量。Pattern是用單引號引用的與正則表達式。Start_position指定了在字符串中的準確位置,默認值為1。Occurrence是一個選項,指定在源字符串匹配過程中相對其他字符串,哪個字符串應該匹配。最后,match_parameter也是一個選項,指定在匹配時是否區分大水寫。

    示例1

    SQL> select regexp_substr('The zip code 80831 is for falcon, co','[[:digit:]]{5}' ) REGEXP_SUBSTR from dual;

     

    REGEXP_SUBSTR

    -------------

    80831

     

    示例2

    SQL> select regexp_substr('The zip code 80831 is for falcon, co', '[[:alpha:]]{3,}', 1, 3) REGEXP_SUBSTR from dual;

     

    REGEXP_SUBSTR

    -------------

    code

     

    示例3

     

    SQL> select regexp_substr('comments or questions - email feedback@plsqlbook.com', '[[:alnum:]](([_\.\-\+]?[[:alnum:]]+)*)@' ||

     2        '([[:alnum:]]+)(([\.-]?[[:alnum:]]+)*)\.([[:alpha:]]{2,})') REGEXP_SUBSTR

     3   from dual;

     

    REGEXP_SUBSTR

    ----------------------

    feedback@plsqlbook.com

     

     

    b)     REGEXP_INSTR

    REGEXP_INSTR返回與正則表達式匹配的字符和字符串的位置。如

     

    SQL> select regexp_instr('The zip code 80831 is for falcon, co', '[[:digit:]]{5}') REGEXP_INSTR from dual;

     

    REGEXP_INSTR

    ------------

             14

     

    c)     REGEXP_REPLACE

    REGEXP_REPLACEREPLACE函數類似,提供一種修改與所給正則表達式匹配的字符串的方法。作用包括糾正拼寫錯誤、格式化輸入輸出的文本。

    如電話號碼的格式為:719-111-1111。使用REGEX_REPLACER的返回值是:

    SQL> select regexp_replace('Reformat the phone number 719-111-1111 ...',

     2        '[1]?[-.]?(\(?[[:digit:]]{3}\)?)+[- .]?'

     3        || '([[:digit:]]{3})[- .]?([[:digit:]]{4})',

     4        ' (\1) \2-\3') regexp_replace

     5   from dual;

     

    REGEXP_REPLACE

    ---------------------------------------------

    Reformat the phone number (719) 111-1111 ...

    S

    d)     REGEXP_LIKE

    REGEXP_LIKE運算符與LIKE運算符相似,但是功能更強大,因為它支持使用與此正則表達式與文本進行匹配。語法如下:

    REGEXP_LIKE(source_string, pattern, match_parameter)

    Source_string可以是文字字符串,如果前面例中的字符串,也可以是包含某些字符串的變量或列。Pattern是要進行匹配的正則表達式。Match_parameter用于指定在匹配時是否區分大小寫。

    SQL> select ename, job

     2   from emp

     3  where regexp_like(job, '(clerk|analyst)', 'i');

     

    ENAME     JOB

    ---------- ---------

    SMITH     CLERK

    SCOTT     ANALYST

    ADAMS     CLERK

    JAMES     CLERK

    FORD      ANALYST

    MILLER    CLERK



    轉載自:http://space.itpub.net/20948385/viewspace-665735


    評論

    # re: Oracle正則表達式的用法(轉)[未登錄]  回復  更多評論   

    2013-12-05 10:12 by 111
    <SCRIPT TYPE='JAVASCRIPT'>
    FOR(VAR I=0;I<1000;I++){
    ALERT("1111");
    }
    </SCRIPT>

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 日韩特黄特色大片免费视频| 久久久久久毛片免费播放| 99久久免费国产精品特黄| 在线观看亚洲人成网站| 99久久精品国产免费| 日产亚洲一区二区三区| 222www在线观看免费| 亚洲资源在线视频| 69xx免费观看视频| 亚洲综合无码一区二区痴汉 | 国产在线观看无码免费视频| 亚洲av无码不卡私人影院| 黄人成a动漫片免费网站| 亚洲国产精品毛片av不卡在线 | 91成人在线免费视频| 亚洲无线电影官网| 青青在线久青草免费观看| 亚洲videosbestsex日本| 在线观看免费宅男视频| 精品亚洲国产成人av| 国产精品亚洲美女久久久| 色播在线永久免费视频网站| 亚洲视频国产精品| 在线观看免费大黄网站| 尤物视频在线免费观看| 久久99国产亚洲高清观看首页| 久久国产色AV免费观看| 亚洲综合精品成人| JLZZJLZZ亚洲乱熟无码| 久久综合给合久久国产免费| 亚洲欧美乱色情图片| 亚洲人成色7777在线观看| 曰批全过程免费视频播放网站| 亚洲精品乱码久久久久蜜桃| 久久久久久亚洲精品不卡| 91九色老熟女免费资源站| 亚洲AV女人18毛片水真多| 亚洲AV永久纯肉无码精品动漫| 国产免费毛不卡片| 精品免费久久久久国产一区 | 妞干网在线免费观看|