正規表達式是一種標準化語法常規在字符串中搜索文字資料的方法,透過正規表達式可以指定複雜字符序列搜尋模式
- 媒塔字符:指定執行搜索算法運算符
- 文字:被查找實際字串
ex:'(f|ht)tps?:
媒塔字符包括括號 管道符號 問號,被查找字符為f ht t p和選擇性的s(因為s後面是問號)跟冒號,媒塔文字中括號代表將一系列樣式元素組合成為一個元素,管道符號代表或,括號中管道符號表示與左側或右側任一替代項目匹配,問號表示前面的字樣或沒有。
正規表達式具有可以指定複雜文符序列搜尋樣式,因此正規表達式被當作Perl和Java等程式語言的強大文本處理組件。
- REGEXP_LIKE:在來源字串或欄位中,依正規表達式定義的樣式及隨後匹配參數進行搜索,當字串與指定樣式匹配返回TRUE,不匹配回傳FALSE
- 來源字串可為實際字串或欄位
- 正規表達式:搜索之字串樣式
- 匹配參數可以為單項或是組合
i 指定不區分大小寫
c 區分大小寫
n 允許句點
m 將來源字串視為多行
- 如果省略匹配參數
預設區分大小寫由NLS_SORT參數值確定
句點換行布匹配
來源字串被視為一行
- REGEXP_LIKE跟LIKE功能相似,可對來源字串或欄位以指定的字串樣式進行搜尋,
SELECT 欄位1[,...,欄位N]
FROM 資料表
WHERE REGEXP_LIKE(來源字串或欄位, '正規表達式'['匹配參數']);
- REGEXP_REPLACE:在來源字串中依正規表達式指定字串樣式進行搜索,並將匹配項目用替代字串換之
SELECT 欄位1[,...,欄位N]
FROM 資料表
WHERE REGEXP_REPLACE(來源字串, '正規表達式','替代字串'[,P[,O[M]]]);
- REGEXP_INSTR:搜索來源字串,並根據返回選項R參數的值,返回一個整數,指示匹配子字串的開始或結束位置,如果沒有匹配項則函數返回0
SELECT 欄位1[,...,欄位N]
FROM 資料表
WHERE REGEXP_INSTR(來源字串, '正規表達式','替代字串'[,P[,O[M]]]);
- REGEXP_SUBSTR:使用正規表達式定義的字串樣式去搜尋來源字串,如果有匹配項則返回匹配字串
REGEXP_SUBSTR(來源字串,'正規表達式'[,P[0[,M]]])