oracle 10g支援正規表示式的四個新函式分別是:regexp_like、regexp_instr、regexp_substr、和regexp_replace。
它們使用posix 正規表示式代替了老的百分號(%)和萬用字元(_)字元。
特殊字元:
'^' 匹配輸入字串的開始位置,在方括號表示式中使用,此時它表示不接受該字元集合。
'$' 匹配輸入字串的結尾位置。如果設定了 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:]] 任何小寫字母。
[[:punct:]] 任何標點符號。
[[:xdigit:]] 任何16進製制的數字,相當於[0-9a-fa-f]。
各種操作符的運算優先順序
/ 轉義符
(), (?, (?=), 圓括號和方括號
*, +, ?, , , 限定符
^, $, /anymetacharacter 位置和順序
| 「或」操作
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中支援的正規表示式函式主要有下面四個 1.regexp like 與like的功能相似 2.regexp instr 與instr的功能相似 3.regexp substr 與substr的功能相似 4.regexp replace 與replace的功能相似 使用posix正規表示式代...