當前位置:學問君>人在職場>IT認證>

Oracle正則表達式彙集

學問君 人氣:2.51W

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

正則表達式有幾個優點優於常見的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則返回符合匹配條件的下一個字元的起始位置。