IT貓撲網(wǎng):您身邊最放心的安全下載站! 最新更新|軟件分類|軟件專題|手機版|論壇轉(zhuǎn)貼|軟件發(fā)布

您當前所在位置: 首頁數(shù)據(jù)庫Oracle → Oracle正則表達式中注意的問題

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

時間:2015-06-28 00:00:00 來源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評論(0)

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

  1 --中括號中的內(nèi)容為一杠及空格([- ]),匹配成功,結(jié)果為:SA01-2345 6789 0123 4567 8900

  2 SELECT to_char(REGEXP_SUBSTR('SA01-2345 6789 0123 4567 8900',

  3 'SA\d{2}[- ]\d{4}[- ]\d{4}[- ]\d{4}[- ]\d{4}[- ]\d{4}|SA\d{22}',

  4? 1, 1,'i')) as Reg_Str FROM dual;

  5

  6 --中括號中的內(nèi)容為([-[:blank:]]),匹配成功,結(jié)果為:SA01-2345 6789 0123 4567 8900

  7 SELECT to_char(REGEXP_SUBSTR('SA01-2345 6789 0123 4567 8900',

  8 'SA\d{2}[-[:blank:]]\d{4}[-[:blank:]]\d{4}[-[:blank:]]\d{4}[-[:blank:]]\d{4}[-[:blank:]]\d{4}|SA\d{22}',

  9? 1, 1,'i')) as Reg_Str FROM dual;

  10

  11 --如果將中括號換成小括號,匹配成功,結(jié)果為:SA01-2345 6789 0123 4567 8900

  12 SELECT to_char(REGEXP_SUBSTR('SA01? -? 2345 6789 0123 4567 8900',

  13 '(SA)?\d{2}(\s|-)\d{4}(\s|-)\d{4}(\s|-)\d{4}(\s|-)\d{4}(\s|-)\d{4}|(SA)?\d{22}',

  14? 1, 1,'i')) as Reg_Str FROM dual;

  15

  16 --中括號中的內(nèi)容為([-[:digit:][:blank:]]),匹配成功,結(jié)果為:SA01-2345 6789 0123 4567 8900

  17 SELECT to_char(REGEXP_SUBSTR('SA01-2345 6789 0123 4567 8900',

  18 '(SA)?[-[:digit:][:blank:]]{22,50}',

  19? 1, 1,'i')) as Reg_Str FROM dual;

  20

  21 --中括號中的內(nèi)容為([-\d[:blank:]]),匹配失敗,結(jié)果為空

  22 SELECT to_char(REGEXP_SUBSTR('SA01-2345 6789 0123 4567 8900',

  23 '(SA)?[-\d[:blank:]]{22,50}',

  24? 1, 1,'i')) as Reg_Str FROM dual;

  25

  26 --中括號內(nèi)容如下,匹配失敗,結(jié)果為空

  27 SELECT to_char(REGEXP_SUBSTR('SA01-2345 6789 0123 4567 8900',

  28 '(SA)?[-\d\s]{22,50}',

  29? 1, 1,'i')) as Reg_Str FROM dual;

  30

  31 --中括號內(nèi)容如下,匹配失敗,結(jié)果為空

  32 SELECT to_char(REGEXP_SUBSTR('SA01-2345 6789 0123 4567 8900',

  33 '(SA)?[-\d ]{22,50}',

  34? 1, 1,'i')) as Reg_Str FROM dual;

  35

  36 --中括號中的內(nèi)容為([-\s]),匹配失敗,結(jié)果為空

  37 SELECT to_char(REGEXP_SUBSTR('SA01-2345 6789 0123 4567 8900',

  38 'SA\d{2}[-\s]\d{4}[-\s]\d{4}[-\s]\d{4}[-\s]\d{4}[-\s]\d{4}|SA\d{22}',

  39? 1, 1,'i')) as Reg_Str FROM dual;

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

關(guān)鍵詞標簽:Oracle,正則表達式

相關(guān)閱讀

文章評論
發(fā)表評論

熱門文章 Oracle中使用alter table來增加,刪除,修改列的語法 Oracle中使用alter table來增加,刪除,修改列的語法 oracle中使用SQL語句修改字段類型-oracle修改SQL語句案例 oracle中使用SQL語句修改字段類型-oracle修改SQL語句案例 誤刪Oracle數(shù)據(jù)庫實例的控制文件 誤刪Oracle數(shù)據(jù)庫實例的控制文件 為UNIX服務器設置Oracle全文檢索 為UNIX服務器設置Oracle全文檢索

相關(guān)下載

    人氣排行 oracle中使用SQL語句修改字段類型-oracle修改SQL語句案例 Oracle中使用alter table來增加,刪除,修改列的語法 ORACLE SQL 判斷字符串是否為數(shù)字的語句 ORACLE和SQL語法區(qū)別歸納(1) oracle grant 授權(quán)語句 ORACLE修改IP地址后如何能夠使用 如何加速Oracle大批量數(shù)據(jù)處理 Oracle刪除表的幾種方法