熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

Oracle正則表達式中注意的問題

2013-11-13 15:37:44  來源: Oracle 

  在Oracle g中當在正則表達式中用了中括號時某些符號會匹配不了如[\s\d]要用類似於[[:digit:][:blank:]]才能匹配成功以下是我測試的例子

   中括號中的內容為一槓及空格([ ])匹配成功結果為:SA

   SELECT to_char(REGEXP_SUBSTR(SA

   SA\d{}[ ]\d{}[ ]\d{}[ ]\d{}[ ]\d{}[ ]\d{}|SA\d{}

    i)) as Reg_Str FROM dual;

  

   中括號中的內容為([[:blank:]])匹配成功結果為:SA

   SELECT to_char(REGEXP_SUBSTR(SA

   SA\d{}[[:blank:]]\d{}[[:blank:]]\d{}[[:blank:]]\d{}[[:blank:]]\d{}[[:blank:]]\d{}|SA\d{}

    i)) as Reg_Str FROM dual;

  

   如果將中括號換成小括號匹配成功結果為:SA

   SELECT to_char(REGEXP_SUBSTR(SA   

   (SA)?\d{}(\s|)\d{}(\s|)\d{}(\s|)\d{}(\s|)\d{}(\s|)\d{}|(SA)?\d{}

    i)) as Reg_Str FROM dual;

  

   中括號中的內容為([[:digit:][:blank:]])匹配成功結果為:SA

   SELECT to_char(REGEXP_SUBSTR(SA

   (SA)?[[:digit:][:blank:]]{}

    i)) as Reg_Str FROM dual;

  

   中括號中的內容為([\d[:blank:]])匹配失敗結果為空

   SELECT to_char(REGEXP_SUBSTR(SA

   (SA)?[\d[:blank:]]{}

    i)) as Reg_Str FROM dual;

  

   中括號內容如下匹配失敗結果為空

   SELECT to_char(REGEXP_SUBSTR(SA

   (SA)?[\d\s]{}

    i)) as Reg_Str FROM dual;

  

   中括號內容如下匹配失敗結果為空

   SELECT to_char(REGEXP_SUBSTR(SA

   (SA)?[\d ]{}

    i)) as Reg_Str FROM dual;

  

   中括號中的內容為([\s])匹配失敗結果為空

   SELECT to_char(REGEXP_SUBSTR(SA

   SA\d{}[\s]\d{}[\s]\d{}[\s]\d{}[\s]\d{}[\s]\d{}|SA\d{}

    i)) as Reg_Str FROM dual;

  明白原因的麻煩在下面評論謝謝!


From:http://tw.wingwit.com/Article/program/Oracle/201311/17033.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.