正则表达式用来匹配文本的特殊字符集合
格式:在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结尾的所有数据
一个一个写太累了,下面整理一下找了找别人整理好的,用法都是和上面一样的,可以参考
匹配字符类
下面是来自菜鸟教程的正则匹配描述