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