concept:正则表达式是用来匹配文本的特殊的串(字符合集)
所有的程序设计语言,文本编辑器,操作系统都支持正则表达式。
基本字符匹配
select * from tb_teacher where tb_teachersex regexp ‘fe’ order by tb_teachersex;
select * from tb_teacher where tb_teachersex regexp ‘.e’ order by tb_teachersex;
这里使用了通配符.e,.是正则表达式中一个特殊的字符,表示匹配任意一个字符。
进行or匹配
select * from tb_teacher where regexp tb_teachersex ‘fe|ma’ order by tb_teachersex;
匹配几个字符之一
select * from tb_teacher where tb_teachersex regexp ‘[fe|ma]le’ order by tb_teachersex;
意思是匹配fe或者ma
匹配范围
select * from tb_teacher where teacherid regexp ‘[1-5]’ order by teacherid;
定义了一个范围串1-5
匹配特殊字符
select * from tb_teacher where teacherid regexp ‘\.’ order by teacherid;
匹配. - | [] \这样的特殊字符,要使用\这样的转移字符。
匹配字符类
[:alnum:]
[:alpha:]
[:blank:] blank and tab
[:cntrl:] ASCII控制字符
[:digit:]
[:graph:] 与[:print:]相同,但是不包括空格
[:lower:]
[:print:]打印任何字符
[:punct:]既不在[:alnum:],也不在[:cntrl:] 的任意字符
[:space:] 包括空格在内的任意空白字符
[:uper:] 任意大写字母
[:xdigit:]任意16进制数字
匹配多个实例
select teacherid from tb_teacher where teacherid regexp '[[:digit:]{4}]'order by teacherid;
–要求它前面的字符任意数字出现4次
等价于select teacherid from tb_teacher where teacherid regexp '[0-9][0-9][0-9][0-9]'order by teacherid;
定位符
^匹配字符的开始