一.简介
正则表达式(regular expression)
描述了一种字符串匹配的规则,正则表达式本身就是一个字符串,使用这个字符串来描述、用来定义匹配规则,匹配一系列符合某个句法规则的字符串。
在开发中,正则表达式通常被用来检索、替换那些符合某个规则的文本。
MySQL中通过REGEXP关键字支持正则表达式进行字符串匹配。
二.具体规则
1.在字符串开始处进行匹配(^)
select * from product where pname REGEXP '^海';
2.在字符串末尾处开始匹配($)
select * from product where pname REGEXP '机$';
3.匹配任意单个字符(.)
select 'abc' REGEXP '.b';
可以匹配除了换行符以外的任意字符
4.匹配括号内的任意单个字符[...]
select 'abc' REGEXP '[xay]';
正则表达式的任意字符是否在前面的字符串中出现
5.不匹配括号内的任意单个字符[^...]
select 'a' REGEXP '[^abc]';
^只有在[]内,才是取反的意思。
6.*
a*匹配0个或多个a,包括空字符串。可以作为占位符使用,有没有指定字符都可以匹配到数据
7.+
a+匹配1个或多个a,但是不包括空字符串
8.?
a?匹配0个或1个a
9.a1|a2
匹配a1或a2
10.a{m}
匹配m个a
11.a{m,}
匹配m个或更多个
12.a{m,n}
匹配m到n个a,包括m和n
13.(abc)
abc作为一个序列匹配,不用括号括起来都是用单个字符去匹配。
整体匹配,需要用到括号。