mysql中正则表达式的用法_mysql之正则表达式的用法

本文介绍了MySQL中正则表达式`REGEXP`与`LIKE`的区别,强调了正则表达式的灵活性和强大功能。通过实例展示了如何使用`|`进行或匹配,以及如何使用`[]`进行范围匹配。同时,提到了`BINARY`关键字用于区分大小写匹配,`NOT`用于反向匹配,并举例说明了如何利用正则匹配连续数字和特定开头或结尾的字符串。此外,还提供了正则表达式的常用字符类匹配规则。
摘要由CSDN通过智能技术生成

正则表达式用来匹配文本的特殊字符集合

格式:在where查询中使用regexp关键字,后面接正则表达式字符

正则表达式与like的区别

like匹配整列数据

regexp可以匹配列中任意位置的字符,更加灵活,更强大。

用like模糊匹配,查询字段里面有包含某个字符的数据,下面这里例子中,匹配token列包含2d3的所有数据

fc4f5dcab65541d199abb5ff4be1ea8f.png

上面的包含匹配,我们使用正则也可以实现

425709e0136677fe21b4d946d0f6e0c9.png

使用" | "来匹配,表示或者的意思。匹配两个字符2d3或者b2,都会查找出来

760766336472c792faa554b88c18b1bb.png

匹配一个范围,[1-9]表示匹配1到9之间的任意一个数字,[a-z]表示匹配a到z之间的任意一个字符

使[ ] ,匹配几个字符中的任意一个,只要包含c或者包含e都会查找出来

e5ff256b02e5f1d05a994d0d414f3fa1.png

只要包含1到3之间 的数据都会查找出来

df249f588361468a599d4d1bd1ae7c5c.png

语法错误,因为这种写法是错误的,程序会当成1或者,2到1,或者3,所以无法执行报错了

9fe17d003fb8104e807d6e294abc16a2.png

包含2,或者4到6之间的数据

5eaf75c07e5bf01eb222cf9ec5a6014b.png

我们知道mysql是不区分大小的,那我们有时候需要只查找到大写的某些字符,怎么办呢

加上binary之后,区分大小写,这里写成小写的rb就查找不出来

f69ef77c9520470a132e582df3aa3829.png

NOT取反,只要不是大写RB的,全部都会查找出来

bfa19a7768b6ce641295a2385a2389f2.png

再看一组例子,包含fc后面跟4或者5或者6的都会查找出来

50a0f5a77df188962fdb3bb6dcc0dc5c.png

下尖括号 ^ 的用法,不匹配几个字符中的任意一个

下面例子fc后面不包含4或者5或者6的全部查找出来,这个下尖括号是对4或5或6的否定,所以fc后面跟b和8的所有行都查找出来了。

ecba86f98ad24d5b34ae1314272660da.png

这里的NOT是对整个正则匹配到的数据否定, 只要不是fc后面跟456的全部查找出来

c7715eea913b402402f602c36bcf2f6f.png

查找出连在一起的七位数(任意数)

1ea9baba11569c63e23317e7a793e389.png

匹配以fc开头的所有的数据

4ae589d69a9584622de9cd0a4661874d.png

匹配以ba结尾的所有数据

a65e15e9c8d6b472cfd43a7b08225523.png

一个一个写太累了,下面整理一下找了找别人整理好的,用法都是和上面一样的,可以参考

匹配字符类

4b38c78952c56bbe9306e763f831830c.png

下面是来自菜鸟教程的正则匹配描述

31e1b3a80e0e6a3b2843c210ca958c92.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值