在Oracle中使用正則表達式
從10g開始,可以在查詢中使用
一、正則表達式:
1、REGEXP_LIKE :匹配
REGEXP_LIKE(source_string, pattern[, match_parameter]):返回滿足匹配模式的字符串
相當(dāng)于增強的like函數(shù)。
- Source_string指定源字符表達式;
- pattern指定規(guī)則表達式;
- match_parameter指定默認(rèn)匹配操作的文本串。
其中 match_parameter參數(shù)都是可選的。
match_parameter的取值如下:
- 'c' 說明在進行匹配時區(qū)分大小寫(缺省值);
- 'i' 說明在進行匹配時不區(qū)分大小寫;
- 'n' 允許使用可以匹配任意字符的操作符;
- 'm' 將x作為一個包含多行的字符串。
- ‘x’ 忽略空白字符。
SELECT * FORM. tKHXX where REGEXP_LIKE(SJHM, '^[1]{1}[35]{1}[[:digit:]]{9}$'
2、REGEXP_REPLACE :替換
REGEXP_REPLACE(source_string,pattern,replace_string,position,occurtence,match_parameter):字符串替換函數(shù)
相當(dāng)于增強的replace函數(shù)。
- Source_string指定源字符表達式;
- pattern指定規(guī)則表達式;
- replace_string指定用于替換的字符串;
- position指定起始搜索位置;
- occurtence指定替換出現(xiàn)的第n個字符串;
- match_parameter指定默認(rèn)匹配操作的文本串
select length(regexp_replace('123-345-566', '[^-]', '')) from dual;
3、REGEXP_INSTR :位置
REGEXP_INSTR(source_string, pattern[, start_position[, occurrence[, return_option[, match_parameter]]]])該函數(shù)查找 pattern ,并返回該模式的第一個位置。
您可以隨意指定您想要開始搜索的 start_position。
- occurrence 參數(shù)默認(rèn)為 1,除非您指定您要查找接下來出現(xiàn)的一個模式。
- return_option 的默認(rèn)值為 0,它返回該模式的起始位置;值為 1 則返回符合匹配條件的下一個字符的起始位置。
SELECT REGEXP_INSTR ('hello itmyhome', 'e') FROM dual
4、REGEXP_SUBSTR :提取
REGEXP_SUBSTR(source_string, pattern[,position [, occurrence[, match_parameter]]]):返回匹配模式的子字符串。
相當(dāng)于增強的substr函數(shù)。
- Source_string指定源字符表達式;
- pattern指定規(guī)則表達式;
- position指定起始搜索位置;
- occurtence指定替換出現(xiàn)的第n個字符串;
- match_parameter指定默認(rèn)匹配操作的文本串。
其中position,occurtence,match_parameter參數(shù)都是可選的。
SELECT REGEXP_SUBSTR ('hello my phone is 520 ', '[0-9]+') FROM dual; --520
5、REGEXP_COUNT (Oracle 11g 新增) :計數(shù)
REGEXP_COUNT (source_char, pattern [, position [, match_parameter]])統(tǒng)計字符串出現(xiàn)的次數(shù)
select REGEXP_COUNT('123-345-566', '-') from dual;
二、預(yù)定義的 POSIX 字符簇
[:alpha:]:字母字符
[:lower:]:小寫字母字符
[:upper:]:大寫字母字符
[:digit:]:數(shù)字
[:alnum:]:字母數(shù)字字符
[:space:]:空白字符(禁止打印),如回車符、換行符、豎直制表符和換頁符
[:punct:]:標(biāo)點字符
[:cntrl:]:控制字符(禁止打?。?/p>
[:print:]:可打印字符
到此這篇關(guān)于在Oracle中使用正則表達式的文章就介紹到這了。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
oracle的導(dǎo)入導(dǎo)出注意事項及心得分享
導(dǎo)入導(dǎo)出oracle方案是備份和恢復(fù)的主旋律,有一點點在使用過程中的體會,在此與大家分享下,希望對大家有所幫助2013-09-09Oracle移動數(shù)據(jù)文件不停機和停機兩種方式詳解
這篇文章主要為大家介紹了Oracle移動數(shù)據(jù)文件不停機和停機兩種方式詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-09-09Oracle中實現(xiàn)一次插入多條數(shù)據(jù)詳細代碼舉例
公司的項目,有個功能每次使用需要向數(shù)據(jù)庫插入很多數(shù)據(jù),這里給大家總結(jié)下,這篇文章主要給大家介紹了Oracle中實現(xiàn)一次插入多條數(shù)據(jù)的相關(guān)資料,文中通過圖文及代碼介紹的非常詳細,需要的朋友可以參考下2024-06-06oracle11gR2使用exp導(dǎo)出命令時報EXP-00011錯誤的解決方法
這篇文章主要介紹了oracle11gR2使用exp導(dǎo)出命令時報EXP-00011錯誤的解決方法,大家參考使用吧2014-01-01Oracle 12CR2查詢轉(zhuǎn)換教程之cursor-duration臨時表詳解
這篇文章主要給大家介紹了關(guān)于Oracle 12CR2查詢轉(zhuǎn)換教程之cursor-duration臨時表的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-11-11