符号之间,记住你所需要的正则表达式

在sql语言中一般使用正则表达式过滤数据
01or的关系

a|b 结果=字段1(包含a)+字段2(包含b)
意思是字段中有a或者b都可以

SELECT *
FROM student.re
WHERE restr REGEXP 'a|b'

在这里插入图片描述
【】匹配括号内的单个字符

SELECT *
FROM student.re
WHERE restr REGEXP '[a]'

在这里插入图片描述
如果觉得和上一个没关系,请看下面例子

SELECT *
FROM student.re
WHERE restr REGEXP '[ab]'

【ab】表示【】里面有a或者b=a|b在这里插入图片描述
事实上上面的正则表达式也可以按照下面方式改写

SELECT *
FROM student.re
WHERE restr REGEXP '[a|b]'

在这里插入图片描述
【m-n】
表示匹配到m-n任意一个字符包括端点值

SELECT *
FROM student.re
WHERE restr REGEXP '[1-a]'

在这里插入图片描述
【m-n】=m|。。。+。。。|n
好吧,我承认这是一种在现实当中没人会去这样用的傻方法
不过,这也只是想帮你发现之间的关系,方便记忆
特殊的
mm?ns
表示选择mn或者mmn可以理解为
mm?ns=mn|mmn

SELECT *
FROM student.re
WHERE restr REGEXP 'aa|b'

在这里插入图片描述

【^ABC】
表示除ABC外必须有其他的

SELECT *
FROM student.re
WHERE restr REGEXP '[^abc]'

在这里插入图片描述
02指数的关系
a{m}
匹配到有m个a

SELECT *
FROM student.re
WHERE restr REGEXP 'a{2}'

在这里插入图片描述
a{m,}
匹配到m或者多个a

SELECT *
FROM student.re
WHERE restr REGEXP 'a{1,}'

这里其实可以理解为,对a不设置上限
在这里插入图片描述
有了不设置上限,有没有不设置下限呢?

SELECT *
FROM student.re
WHERE restr REGEXP 'a{,1}'!

在这里插入图片描述
类似的还有a{}

SELECT *
FROM student.re
WHERE restr REGEXP 'a{}'

结果和上面的一样
在这里插入图片描述
m能为0吗?当然可以

SELECT *
FROM student.re
WHERE restr REGEXP 'a{0,}'

等同于全选,虽然有结果。但是起不到过滤作用,是个鸡肋,没有卵用。

在这里插入图片描述
a{m,n}
匹配m到n个a

SELECT *
FROM student.re
WHERE restr REGEXP 'a{1,2}'

在这里插入图片描述
03其他关系
^a表示
以a开头的

SELECT *
FROM student.re
WHERE restr REGEXP '^ab'

在这里插入图片描述
a$
表示以a结尾的

SELECT *
FROM student.re
WHERE restr REGEXP 'ab$'

在这里插入图片描述
.a在字符串中必须有a。且a前必须有任意一个字符

SELECT *
FROM student.re
WHERE restr REGEXP '.ab'

在这里插入图片描述
ab+
匹配一个或多个ab,不包括空

SELECT *
FROM student.re
WHERE restr REGEXP 'ab+'

在这里插入图片描述
(。。。)意思是将()内的看成单一元素进行操作
(ab)+
ab,abab,ababab。。。。

SELECT *
FROM student.re
WHERE restr REGEXP '(ab)+'

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值