我在b站学数据库 (六):DQL中的正则表达式

上一篇:我在b站学数据库 (五):DQL练习

一、语法
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 
 

下一篇:我在b站学数据库 (七):多表操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值