【oracle】正則表達式函數REGEXP_LIKE(x,pattern)

1.REGEXP_LIKE(x,pattern)函數

REGEXP_LIKE(x,pattern)函數的功能類似於like運算符, 用於判斷源字符串是否匹配或包含指定模式的子串。 x指定源字符串, pattern是正則表達式字符串。該函數只可用在where子句中。

2.正則表達式規則

(1) 正則表達式通常是由普通字符和元字符組成。
(2) 元字符. 匹配任意單個字符,包括空格、 Tab字符甚至換行符。

(3) 元字符[]描述值的集合。

--查找用戶,要求last_name中含有’B’開頭,第二個字符是l,m,n中的一個,第三個字符是a,b,c,u,v,w中的一---個,以c,d,e中的某一個字符結尾,長度爲4的子串。
SELECT *
FROM customers
WHERE REGEXP_LIKE(last_name,'B[lmn][abcuvw][cde]');

(4) 可在[]中使用-表示範圍
(5) 用來界定子表達式,內部使用元字符|表示或的關係。

--查找用戶,要求last_name中含有’ l’開頭,後跟‘ue’或’ ack’的子串。
SELECT *
FROM customers
WHERE REGEXP_LIKE(last_name,'l(ue|ack)');

(6) 元字符 {n}表示重複前面的元素n次;如: {2,5}表示前面的元素重複2到5次; {3,}表示至少重複3次。
(7) 對於重複次數的限制,還可使用下列特殊元字符:
* 表示前面的元素重複0次或多次
? 表示前面的元素重複0次或1次
+ 表示前面的元素重複1次或多次
(8) 轉義字符\
(9) 中括號中的^符號表示“否”,中括號外的^表示字符串開始,$表示字符串結束
(10) \d \D \w \W \s \S等表示快捷符號

3.REGEXP_LIKE函數的完整用法
REGEXP_LIKE(x,pattern[,match_option])
判斷x中是否包含pattern定義的字符串。 match_option可取的值有:
‘c’ --表明匹配時區分大小寫(默認選項)
‘i’ --表明匹配時不區分大小寫
‘n’ --允許.匹配任意字符,也可以匹配換行符
‘m’ --.不匹配換行符
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章