-------------------------------------------正規表達式:-----------------------------------------------
正規表達式是符號和元素的集合,這些集合可以使用戶匹配特定的文本模式。正規表達式采用元符號的組合來定義各種匹配和搜索標準。在正規表達式中,匹配是大小寫敏感的。
元符號 描述 示例
* 匹配0個或多個任意的字符 bd* 匹配bdq,bdabc
? 匹配一個任意的字符 B?d匹配 BDd,Bld
^ 表示字符串的開始 ^abc與abced,abcfr可acdv
$ 表示字符串的末尾 bas$ 以bas為結尾的所有字符串
x|y 匹配x或y windo|door表示windo或者dr
[] 匹配[]中的任意一個字符 ba[a-b]匹配baa 或bab
{m} 可以匹配m次 m[0-9]{3}匹配m7,m12,m123
{m,n} 至少m次最多n次
\n 表示前一個表達式可以重復N 次 [aeiou]\2 匹配aatldf 但abldf
[::] 指定一個字符類,匹配該類中的任意一個字符
使用正規表達式:
函數 描述
Regexp_like() 類似于like運算符,可以使用正規表達式執行模式匹配操作
Regexp_instr() instr運算的擴張,可以用來搜索匹配正規表達式模式的輸入字符串
Regexp_replace() replace的擴展,用戶搜索符合正規表達式模式的輸入字符串,并用指定的字符代替這些字符串
Regexp_substr() substr函數的擴展,用戶搜索符合正規表達式模式的輸入字符串,輸出是這些搜索到的字符串
說明:
一:Regexp_like(search_string,pattern [,match_option]);
(1):search_string是搜索值
(2):parrern 是使用得正規表達式且其長度限制在512字節內
(3)match_option:是一個文本串,可以使用戶設置該函數的匹配行為
Match_option參數表:
值 描述
C 匹配時,大小寫敏感,是默認設置
I 匹配時,大小寫不敏感
N 允許使用圓點(。)匹配任何新增的字符
M
Eg:
Select author_id,last_name from author where regexp_liek(last_name,’e$’);--搜索以e結尾的作者姓名
二:regexp_instr(search_string,pattern,[,position [,occurrence [,return_option [,match_option ]]]]);
(1) :search_string是搜索值
(2):parrern 是使用得正規表達式且其長度限制在512字節內
(3)position 是一個表示搜索開始位置的正整數,默認為一。
(4)occurrence定義了搜索模式的發生次數,默認為一,
(5)return_optionshi 是一個數字,表示該函數應該返回的值。該數字可以是0(表示開始匹配的位置)也可以是非0(表示匹配的結束位置)
(6)match_option 是設置該函數匹配行為的參數
Eg:
Select regexp_instr(‘orcale database 10g’,’a’,1,2) from dual;
三:
regexp_replace((search_string,pattern,[,position[,occurrence[,return_option [,match_option ]]]]);
(1) :search_string是搜索值
(2):parrern 是使用得正規表達式且其長度限制在512字節內
(3)position 是一個表示搜索開始位置的正整數,默認為一。
(4)occurrence定義了搜索模式的發生次數,默認為一,
(5)return_optionshi 是一個數字,表示該函數應該返回的值。該數字可以是0(表示開始匹配的位置)也可以是非0(表示匹配的結束位置)
(6)match_option 是設置該函數匹配行為的參數
)
Select last_name,regexp_replace(last_name,’e’,’E’) from duthors where author_id<3
四:
Regexp_substr(seach_string,pattern [,position ,[,occurrence [,match_option]]])
(1) :search_string是搜索值
(2):parrern 是使用得正規表達式且其長度限制在512字節內
(3)position 是一個表示搜索開始位置的正整數,默認為一。
(4)occurrence定義了搜索模式的發生次數,默認為一,
(5)match_option 是設置該函數匹配行為的參數
Eg:
Select last_name,regexp_substr(last_name,’[rst][a-z]{4}’) from authors where length(regexp_sustr(last_name,[rst][a_z]{4}));