mysql之正则表达式的用法

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

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

正则表达式与like的区别

like匹配整列数据

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

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

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

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

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

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

 

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

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

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

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

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

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

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

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

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

 

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

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

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

 匹配以ba结尾的所有数据

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

匹配字符类

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

原文地址:https://www.cnblogs.com/king2/p/13625284.html