正则表达式
. 匹配除换行符之外的任意字符
? 匹配前面的子表达式零次或一次
+ 匹配前面的子表达式一次或多次
* 匹配前面的表达式零次或多次
^ ^abc,匹配以abc开头的字符串
$ abc$,匹配以abc结尾的字符串
[] 字符集合中任一个
[[:alpha:]] 任何字母
[[:digit:]] 任何数字
[[:space:]] 任何白字符(空格、制表符)
[[:punct:]] 任何标点符号
[[:lower:]] 任何小写字母
[[:upper:]] 任何大写字母
[[:punct:]] 任何标点符号
mysql:rlike
字母不区分大小写
--查找以a开头的姓名
select * from stu
where name rlike '^a';
--找到以字母开头姓名
select * from stu
where name rlike '[1]';
--以数字开头
select * from stu
where name rlike '[2]';
Oracle:
where regexp_like(字段,正则表达式)
字母区分大小写
--找到以小写字母开头的
select * from stu
where regexp_like(name,'[3]');:
--找到以大写字母开头的
select * from st
where regexp_like(name,'[4]');
--找到以字母开头并且以字母结尾(包含单个字母)
select * from stu
where regexp_like(name,'[5].*[a-z,A-Z]$') or regexp_like(value,'[a-z,A-Z]');
--找到字符串只包含字母
select * from exp
where regexp_like(value,'[6]*$');
.在数据中查找仅仅包含数字的数据
select * from exp
where regexp_like(value,'[7]*$');
select * from exp
where regexp_like(value,'[8]*$');
.在数据中查找包含标点符号的数据
select * from exp
where regexp_like(value,'[[:punct:]]');
.在数据中查找以字母开头,数字结尾的数据
select * from exp
where regexp_like(value,'[9].*[0-9]$');
.在数据中查找以字母开头,字母结尾并包含数字的数据
select * from exp
where regexp_like(value,'[10]') and regexp_like(value,'[0-9]+') and regexp_like(value,'[a-zA-Z]$');
.在数据中查找全为大写字母的数据
select * from exp
where regexp_like(value,'[11]*$');
.在数据中查找以数字开头,并包含小写字母的数据
select * from exp
where regexp_like(value,'[12]') and regexp_like(value,'[[:lower:]]+')
.在数据中查找仅仅包含数字、空格和字母的数据
select * from exp
where regexp_like(value,'[0-9]+')
and regexp_like(value,'[ ]+')
and regexp_like(value,'[a-zA-Z]+');
select * from exp
where regexp_like(value,'[13]+$')
select * from exp
where regexp_like(value,'[14]+$')
and regexp_like(value,'[0-9]+')
and regexp_like(value,'[ ]+')
and regexp_like(value,'[a-zA-Z]+');
.在人员表中查找人员编号为奇数的人
select * from emp
where empid like '%1' or empid like '%3'
or empid like '%5' or empid like '%7'
or empid like '%9';
select * from emp
where regexp_like(empid,'[15]$');