正则表达式
Posted td1900
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式相关的知识,希望对你有一定的参考价值。
. 匹配除换行符之外的任意字符
? 匹配前面的子表达式零次或一次
+ 匹配前面的子表达式一次或多次
* 匹配前面的表达式零次或多次
^ ^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 ‘^[a-z]‘;
--以数字开头
select * from stu
where name rlike ‘^[0-9]‘;
Oracle:
where regexp_like(字段,正则表达式)
字母区分大小写
--找到以小写字母开头的
select * from stu
where regexp_like(name,‘^[a-z]‘);:
--找到以大写字母开头的
select * from st
where regexp_like(name,‘^[A-Z]‘);
--找到以字母开头并且以字母结尾(包含单个字母)
select * from stu
where regexp_like(name,‘^[a-z,A-Z].*[a-z,A-Z]$‘) or regexp_like(value,‘[a-z,A-Z]‘);
--找到字符串只包含字母
select * from exp
where regexp_like(value,‘^[a-z,A-Z]*$‘);
.在数据中查找仅仅包含数字的数据
select * from exp
where regexp_like(value,‘^[0-9]*$‘);
select * from exp
where regexp_like(value,‘^[[:digit:]]*$‘);
.在数据中查找包含标点符号的数据
select * from exp
where regexp_like(value,‘[[:punct:]]‘);
.在数据中查找以字母开头,数字结尾的数据
select * from exp
where regexp_like(value,‘^[a-z,A-Z].*[0-9]$‘);
.在数据中查找以字母开头,字母结尾并包含数字的数据
select * from exp
where regexp_like(value,‘^[a-z,A-Z]‘) and regexp_like(value,‘[0-9]+‘) and regexp_like(value,‘[a-zA-Z]$‘);
.在数据中查找全为大写字母的数据
select * from exp
where regexp_like(value,‘^[[:upper:]]*$‘);
.在数据中查找以数字开头,并包含小写字母的数据
select * from exp
where regexp_like(value,‘^[0-9]‘) 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,‘^[a-zA-Z0-9 ]+$‘)
select * from exp
where regexp_like(value,‘^[a-zA-Z0-9 ]+$‘)
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,‘^[13579]$‘);
以上是关于正则表达式的主要内容,如果未能解决你的问题,请参考以下文章