正则表达式是用某种模式去匹配一类字符串的一个方式,正则表达式的查询能力比通配字符的查询能力更强大,而且更加的灵活。

在mysql中,使用REGEXP关键字来匹配查询正则表达式。
其基本形式如下:
字段名 REGEXP ‘匹配方式’

模式字符

含义

^

匹配字符开始的部分

$

匹配字符串结尾的部分

.

代表字符串的任意一个字符,包括回车和换行

[字符集合]

匹配字符集合中的任意一个字符

[^字符集合]

匹配字符集合以为的任意一个字符

S1|S2|S3

匹配S1,S2,S3中的任意一个字符串

*

代表0个或者多个其前的字符

+

代表1个或者多个其前的字符


代表0个或者多个其前的字符

String{N}

字符串出现N次

字符串{M,N}

字符串至少出现M次,最多出现N次

示例:

  1. '^'的用法
匹配字符开始的部分

MYSQL匹配表的年 正则 mysql 正则表达式匹配_bc

2.'$'的用法

匹配字符结束的部分

MYSQL匹配表的年 正则 mysql 正则表达式匹配_mysql_02


3 . '.'的用法

可以代表字符中的任意一个字符

MYSQL匹配表的年 正则 mysql 正则表达式匹配_MYSQL匹配表的年 正则_03


4.'[]'的用法

匹配字符集合中的任意一个字符

MYSQL匹配表的年 正则 mysql 正则表达式匹配_bc_04


MYSQL匹配表的年 正则 mysql 正则表达式匹配_MYSQL匹配表的年 正则_05


5.'[^]'的用法

匹配字符集合以为的字符

MYSQL匹配表的年 正则 mysql 正则表达式匹配_MYSQL匹配表的年 正则_06

6.S1|S2|S3 的用法

匹配S1|S2|S3中任意一个字符

MYSQL匹配表的年 正则 mysql 正则表达式匹配_正则表达式_07

  1. ’ * ’ 的用法
代表紧挨着 '*'前面的字符可以没有,也可以出现多次 
 如ab*c可以匹配 ac abc  abbc

MYSQL匹配表的年 正则 mysql 正则表达式匹配_正则表达式_08

  1. ’ ? '的用法
表示紧挨着'?'前面的字符可有可无
 如abc? 可以匹配abc,也可以匹配ab

MYSQL匹配表的年 正则 mysql 正则表达式匹配_正则表达式_09

  1. ‘+’ 的用法
    表示紧挨着’ + '前面的字符至少出现一次
    如ab+c 可以匹配abc abbc
  2. MYSQL匹配表的年 正则 mysql 正则表达式匹配_正则表达式_10

  3. {}的用法
    (1) {i}
'{}'中出现一个整数i,表示至少出现的次数

MYSQL匹配表的年 正则 mysql 正则表达式匹配_字符串_11


(2) {i,j}

表示字符出现的次数n , n要满足   n>= i && n<= j

MYSQL匹配表的年 正则 mysql 正则表达式匹配_mysql_12


其中以上的整数都必须大于等于0,小于等于RE_DUP_MAX(默认是255)