Oracle中的正則表達式離不開這4個函數

Oracle使用正則表達式離不開這4個函數:

1。regexp_like

2。regexp_substr

3。regexp_instr

4。regexp_replace

看函數名稱大概就能猜到有什麼用了。

 

regexp_like 只能用於條件表達式,和 like 類似,但是使用的正則表達式進行匹配,語法很簡單:

regexp_like_condition

regexp_substr 函數,和 substr 類似,用於拾取合符正則表達式描述的字符子串,語法如下:

regexp_substrregexp_instr 函數,和 instr 類似,用於標定符合正則表達式的字符子串的開始位置,語法如下:

regexp_instr

regexp_replace 函數,和 replace 類似,用於替換符合正則表達式的字符串,語法如下:

regexp_replace

這裏解析一下幾個參數的含義:

1。source_char,輸入的字符串,可以是列名或者字符串常量、變量。搜索字符串。可以是任意的數據類型char,VARCHAR2,nchar,CLOB,NCLOB類型

2。pattern,正則表達式。

3。match_parameter,匹配選項。

        取值範圍: i:大小寫不敏感; c:大小寫敏感;n:點號 . 不匹配換行符號;m:多行模式;x:擴展模式,忽略正則表達式中的空白字符。

4。position,標識從第幾個字符開始正則表達式匹配。可選。搜索在字符串中的開始位置。如果省略,默認爲1,這是第一個位置的字符串。

5。occurrence,標識第幾個匹配組。可選。它是模式字符串中的第n個匹配位置。如果省略,默認爲1。

6。replace_string,替換的字符串。

 

描述
^ 匹配一個字符串的開始。如果與“m” 的match_parameter一起使用,則匹配表達式中任何位置的行的開頭。
$ 匹配字符串的結尾。如果與“m” 的match_parameter一起使用,則匹配表達式中任何位置的行的末尾。
* 匹配零個或多個。
+ 匹配一個或多個出現。
匹配零次或一次出現。
匹配任何字符,除了空。
| 用“OR”來指定多個選項。
[] 用於指定一個匹配列表,您嘗試匹配列表中的任何一個字符。
[^] 用於指定一個不匹配的列表,您嘗試匹配除列表中的字符以外的任何字符。
() 用於將表達式分組爲一個子表達式。
{M} 匹配m次。
{M,} 至少匹配m次。
{M,N} 至少匹配m次,但不多於n次。
\ n n是1到9之間的數字。在遇到\ n之前匹配在()內找到的第n個子表達式。
[..] 匹配一個可以多於一個字符的整理元素。
[:] 匹配字符類。
[==] 匹配等價類。
\ d 匹配一個數字字符。
\ D 匹配一個非數字字符。
\ w 匹配包括下劃線的任何單詞字符。
\ W 匹配任何非單詞字符。
\ s 匹配任何空白字符,包括空格,製表符,換頁符等等。
\ S 匹配任何非空白字符。
\A 在換行符之前匹配字符串的開頭或匹配字符串的末尾。
\Z 匹配字符串的末尾。
*? 匹配前面的模式零次或多次發生。
+? 匹配前面的模式一個或多個事件。
?? 匹配前面的模式零次或一次出現。
{N}? 匹配前面的模式n次。
{N,}? 匹配前面的模式至少n次。
{N,M}? 匹配前面的模式至少n次,但不超過m次。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章