Oracle的正規表示式

2021-08-27 16:55:54 字數 2519 閱讀 2258

特殊字元: 

'^' 匹配輸入字串的開始位置,在方括號表示式中使用,此時它表示不接受該字元集合。 

'$' 匹配輸入字串的結尾位置。如果設定了 regexp 物件的 multiline 屬性,則 $ 也匹配 '\n' 或'\r'。 

'.' 匹配除換行符 \n之外的任何單字元。 

'?' 匹配前面的子表示式零次或一次。 

'*' 匹配前面的子表示式零次或多次。 

'+' 匹配前面的子表示式一次或多次。 

'( )' 標記乙個子表示式的開始和結束位置。 

'' 標記乙個中括號表示式。 

'' 乙個精確地出現次數範圍,m=《出現次數<=n,''表示出現m次,''表示至少出現m次。 

'|' 指明兩項之間的乙個選擇。例子'^([a-z]+|[0-9]+)$'表示所有小寫字母或數字組合成的字串。 

\num 匹配 num,其中 num 是乙個正整數。對所獲取的匹配的引用。 

正規表示式的乙個很有用的特點是可以儲存子表示式以後使用,被稱為backreferencing. 允許複雜的替換能力 

如調整乙個模式到新的位置或者指示被代替的字元或者單詞的位置. 被匹配的子表示式儲存在臨時緩衝區 

中,緩衝區從左到右編號, 通過\數字符號訪問。 下面的例子列出了把名字 aa bb cc 變成cc, bb, aa. 

select regexp_replace('aa bb cc','(.*) (.*) (.*)', '\3, \2, \1') from dual; 

regexp_replace('ellenhildismit 

cc, bb, aa 

'\' 轉義符。 

字元簇: 

[[:alpha:]] 任何字母。 

[[:digit:]] 任何數字。 

[[:alnum:]] 任何字母和數字。 

[[:space:]] 任何白字元。 

[[:upper:]] 任何大寫字母。 

[[:lower:]] 任何小寫字母。 

[[unct:]] 任何標點符號。 

[[:xdigit:]] 任何16進製制的數字,相當於[0-9a-fa-f]。 

各種操作符的運算優先順序 

\ 轉義符 

(), (?, (?=), 圓括號和方括號 

*, +, ?, , , 限定符 

^, $, \anymetacharacter 位置和順序 

| 「或」操作

檢視原始碼列印?

1--regexp_like

2select*fromtestwhereregexp_like(mc,'^a');

3select*fromtestwhereregexp_like(mc,'a');

4select*fromtestwhereregexp_like(mc,'^a.*e$');

5select*fromtestwhereregexp_like(mc,'^[[:lower:]]|[[:digit:]]');

6select*fromtestwhereregexp_like(mc,'^[[:lower:]]');

7selectmcfromtestwhereregexp_like(mc,'[^[:digit:]]');

8selectmcfromtestwhereregexp_like(mc,'^[^[:digit:]]');

轉之 

oracle 正規表示式

with temp as select br.777 1 a from dual union all select bs.6 175 a from dual union all select d.140 supplement 1 a from dual union all select e.191 ...

oracle正規表示式

在資料庫可直接執行下面語句,但在程式中不能執行,regexp like t.ipaddress,25 0 5 2 0 4 0 9 01 0 9 0 9 25 0 5 2 0 4 0 9 01 0 9 0 9 報錯有特殊字元 在句末再加乙個 改為 regexp like t.ipaddress,25 ...

oracle正規表示式

oracle 10g支援正規表示式的四個新函式分別是 regexp like regexp instr regexp substr 和regexp replace。它們使用posix 正規表示式代替了老的百分號 和萬用字元 字元。特殊字元 匹配輸入字串的開始位置,在方括號表示式中使用,此時它表示不接...