一、语法
mysql 通过REGEXP关键字支持正则表达式进行字符串匹配
二、格式
三、操作
1、^ 在字符串开始处进行匹配
select ’abc' regexp '^a'; ---1
例:select * from product where pname regexp ‘^海’;
2、$ 在字符串末尾开始匹配
select ‘abc’ regexp ‘a$’; ---0
select 'abc' regexp 'c$'; ---1
例:select * from product where pname regexp ‘水$’;
3、. 匹配任意字符串(换行符除外)
select 'abc' regexp '.b'; ---1
select 'abc' regexp '.c'; ---1
select 'abc' regexp 'a.'; ---1
4、[…] 匹配括号内的任意单个字符
select 'abc' regexp '[xyz]'; ---0
select 'abc' regexp '[xaz]'; ---1
5、a* 匹配0个或者多个a,包括空字符串,可以作为占位符使用,有没有指定字符都可以匹配到数据
select ‘stab’ regexp ‘.ta*b’; ---1
select ‘stb’ regexp ‘.ta*b’; ---1
select ‘’ regexp ‘a*’; ---1
6、a+ 匹配一个或者多个a,但不包括空字符
select ‘stab’ regexp ‘.ta+b’; ---1
select ‘stb’ regexp ‘.ta+b’; ---0
7、a? 匹配0个或者1个a
select ‘stb’ regexp ‘.ta?b’; ---1
select ‘stab’ regexp ‘.ta?b’; ---1
select ‘staab’ regexp ‘.ta?b’; ---0
8、a1|a2 匹配a1或者a2
select ‘a’ regexp ‘a|b'; ---1
select ‘b’ regexp ‘a|b'; ---1
select ‘b’ regexp ‘^(a|b)'; ---1
select ‘a’ regexp ‘^(a|b)'; ---0
9、a{m} 匹配m个a
select ‘auuuuc’ regexp ‘au{4}c'; ---1
select ‘auuuuc’ regexp ‘au{3}c'; ---0
10、a{m,} 匹配m个或者多个a
select ‘auuuuc’ regexp ‘au{3,}c'; ---1
select ‘auuuuc’ regexp ‘au{4,}c'; ---1
select ‘auuuuc’ regexp ‘au{5,}c'; ---0
11、a{m,n} 匹配到m到n个a,包含m和n
select ‘auuuuc’ regexp ‘au{3,5}c'; ---1
select ‘auuuuc’ regexp ‘au{4,5}c'; ---1
select ‘auuuuc’ regexp ‘au{5,10}c'; ---0
12、(abc)作为一个序列匹配,不用括号括起来都是单个字符去匹配,如果要把多个字符作为一个整体去匹配就需要用到括号,所以括号适合上边所有情况
select ‘xababy’ regexp ‘x(abab)y'; ---1
select ‘xababy’ regexp ‘x(ab)*y'; ---1
select ‘xababy’ regexp ‘x(ab){1,2}y'; --1
select ‘xababy’ regexp ‘x(ab){3}y'; --0