時(shí)間:2015-06-28 00:00:00 來(lái)源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評(píng)論(0)
在Oracle 11g中,當(dāng)在正則表達(dá)式中用了中括號(hào)時(shí),某些符號(hào)會(huì)匹配不了,如[\s\d],要用類(lèi)似于[[:digit:][:blank:]]才能匹配成功,以下是我測(cè)試的例子:
1 --中括號(hào)中的內(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 --中括號(hào)中的內(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 --如果將中括號(hào)換成小括號(hào),匹配成功,結(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 --中括號(hào)中的內(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 --中括號(hào)中的內(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 --中括號(hào)內(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 --中括號(hào)內(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 --中括號(hào)中的內(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;
明白原因的麻煩在下面評(píng)論,謝謝!
關(guān)鍵詞標(biāo)簽:Oracle,正則表達(dá)式
相關(guān)閱讀
熱門(mén)文章 Oracle中使用alter table來(lái)增加,刪除,修改列的語(yǔ)法 oracle中使用SQL語(yǔ)句修改字段類(lèi)型-oracle修改SQL語(yǔ)句案例 誤刪Oracle數(shù)據(jù)庫(kù)實(shí)例的控制文件 為UNIX服務(wù)器設(shè)置Oracle全文檢索
人氣排行 oracle中使用SQL語(yǔ)句修改字段類(lèi)型-oracle修改SQL語(yǔ)句案例 Oracle中使用alter table來(lái)增加,刪除,修改列的語(yǔ)法 ORACLE SQL 判斷字符串是否為數(shù)字的語(yǔ)句 ORACLE和SQL語(yǔ)法區(qū)別歸納(1) oracle grant 授權(quán)語(yǔ)句 ORACLE修改IP地址后如何能夠使用 如何加速Oracle大批量數(shù)據(jù)處理 Oracle刪除表的幾種方法