mysql之正则表达式匹配

题目:

今天在牛客网看到一道关于数据库正则表达式匹配的问题,发现自己一点不会做。
mysql之正则表达式匹配_第1张图片


正则表达式:

一、正则表达式

MySQL 正则表达式通常是在检索数据库记录的时候,根据指定的匹配模式匹配记录中 符合要求的特殊字符串。MySQL 的正则表达式使用 REGEXP 这个关键字来指定正则表达 式的匹配模式,REGEXP 操作符所支持的匹配模式如表所示。

匹配 描述

^ 匹配文本的开始字符

$ 匹配文本的结束字符

. 匹配任何单个字符

*匹配零个或多个在它前面的字符
+号 匹配前面的字符 1 次或多次

字符串 匹配包含指定的字符串

p1|p2 匹配 p1 或 p2

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

[^…] 匹配不在括号中的任何字符

{n} 匹配前面的字符串 n 次

{n,m} 匹配前面的字符串至少 n 次,至多 m 次

举例子
查询以ji开头的学生信息

select id,name from ba where name regexp ‘^ji’;

查询以i结尾的学生信息

select id,name from ba where name regexp ‘i$’;

查询名字开头是l后面不知道是什么字符的学生;
mysql之正则表达式匹配_第2张图片

查询名字中包含an的学生信息

select id,name from ba where name regexp ‘an’;

查询名字中有ai,g可有可无

select id,name from ba where name regexp ‘ang*’;

查询名字中含有ang,g至少出现一次的学生信息

select id,name from ba where name regexp ’ang+’;

查询名字包含an或者ei的学生信息

select id,name from ba where name regexp ‘an|ei’;

查找名字中不以a-j开头的任意学生信息

mysql之正则表达式匹配_第3张图片
查找名字以han字段开头的学生信息
mysql之正则表达式匹配_第4张图片
查询名字不是lilei的学生信息

mysql之正则表达式匹配_第5张图片

你可能感兴趣的:(mysql,mysql,正则表达式,数据库)