時間: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)閱讀
熱門文章 Oracle中使用alter table來增加,刪除,修改列的語法 oracle中使用SQL語句修改字段類型-oracle修改SQL語句案例 誤刪Oracle數(shù)據(jù)庫實例的控制文件 為UNIX服務器設置Oracle全文檢索
人氣排行 oracle中使用SQL語句修改字段類型-oracle修改SQL語句案例 Oracle中使用alter table來增加,刪除,修改列的語法 ORACLE SQL 判斷字符串是否為數(shù)字的語句 ORACLE和SQL語法區(qū)別歸納(1) oracle grant 授權(quán)語句 ORACLE修改IP地址后如何能夠使用 如何加速Oracle大批量數(shù)據(jù)處理 Oracle刪除表的幾種方法