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’ --.不匹配换行符