糯米文學吧

位置:首頁 > IT認證 > Oracle認證

Oracle正則表達式彙集

Oracle 10g數據庫內建了符合IEEE POSIX (Portable Operating System for Unix)標準的正則表達式。熟練使用正則表達式,可以寫出簡潔,強大的SQL語句。

Oracle正則表達式彙集

正則表達式有幾個優點優於常見的LIKE操作符和INSTR、SUBSTR及REPLACE 函數的。這些傳統的SQL 函數不便於進行模式匹配。只有LIKE 操作符通過使用%和_字符匹配,但LIKE不支持表達式的重複、複雜的`更替、字符範圍、字符列表和POSIX 字符類等等。

  元字符(Meta Character):

Sql代碼

^ 使表達式定位至一行的開頭

$ 使表達式定位至一行的末尾

* 匹配 0 次或更多次

? 匹配 0 次或 1 次

+ 匹配 1 次或更多次

{m} 正好匹配 m 次

{m,} 至少匹配 m 次

{m, n} 至少匹配 m 次但不超過 n 次

[:alpha:] 字母字符

[:lower:] 小寫字母字符

[:upper:] 大寫字母字符

[:digit:] 數字

[:alnum:] 字母數字字符

[:space:] 空白字符(禁止打印),如回車符、換行符、豎直製表符和換頁符[:punct:] 標點字符

[:cntrl:] 控制字符(禁止打印)

[:print:] 可打印字符 | 分隔替換選項,通常與分組操作符 () 一起使用

( ) 將子表達式分組為一個替換單元、量詞單元或後向引用單元

  [char] 字符列表

Oracle 10g提供了四個regexp function: REGEXP_LIKE , REGEXP_REPLACE , REGEXP_INSTR , REGEXP_SUBSTR 。

Sql代碼

REGEXP_LIKE:比較一個字符串是否與正則表達式匹配

(srcstr, pattern [, match_option])

REGEXP_INSTR:在字符串中查找正則表達式,並且返回匹配的位置

(srcstr, pattern [, position [, occurrence [, return_option [, match_option]]]])

REGEXP_SUBSTR:返回與正則表達式匹配的子字符串

(srcstr, pattern [, position [, occurrence [, match_option]]])

REGEXP_REPLACE:搜索並且替換匹配的正則表達式

(srcstr, pattern [, replacestr [, position [, occurrence [, match_option]]]]) 其中各參數的含義為:

Sql代碼

srcstr: 被查找的字符數據。

pattern: 正則表達式。

occurrence: 出現的次數。默認為1。

position: 開始位置

return_option: 默認值為0,返回該模式的起始位置;值為1則返回符合匹配條件的下一個字符的起始位置。