HELLO,WORLD

Oracle中的正则表达式

检查约束
       --密码的长度必须在3-6
       --年龄必须在1-120
       --性别只能是男或女
       --电话号码必须满足电话的格式: 手机格式,座机格式
drop table test;
select * from test;

create table test
(
       id number(11) primary key,
       name varchar2(20) not null,
       pwd varchar2(20) check (length(pwd)>2 and length(pwd)<7),--密码必须在3-6之间
       age number(11) check (age between 1 and 120),--年龄必须在1-120之间
       gender char(2) check (gender='' or gender=''),  --性别必须是男或女
       tel varchar2(20) check (regexp_like(tel,'^1(3|5|8)[0-9]{9}$|^[0-9]{3}-[0-9]{8}$|^[0-9]{4}-[0-9]{7,8}$'))
)
insert into test values(1,'jack','123',22,'','13912341234');
insert into test values(2,'chris','abc',33,'','0755-1234567');
--oracle中正则表达式的规则:
1、正则表达式的规则,需要以 ^开始,以$结束 
2、匹配原则:
    
      ^12AB$    --表示,内容必须是12AB
      ^[0-9]$   --表示,0-9之间任意的一个数字
      ^[0-9]{2}$ --表示任意的2位数字
      ^[0-9]{2,6}$ --表示2-6位的任意数字
      ^[A-Z]$ --表示任意的一个大写字母
      ^[a-z]$
      ^[a-z|A-Z]$ --不区分大小写的任意字母
      ^1(3|5|8)$  --表示一共有两个字符,第一个必须为1,第二位在3,5,8中任选一位

      ^1(3|5|8)[0-9]{9}$ --表示11位,第一位必须是1,第二位是3,5,8中任意一位,后面是9位数字
      
      ^[0-9]{3}-[0-9]{8}$ --表示区号3位数字,中间横线连接,后面8位数字
      
      ^[0-9]{4}-[0-9]{7,8}$  --表示区号4位,号码可以是7或8位

 

posted @ 2016-06-30 10:01  秦正全  阅读(325)  评论(0编辑  收藏  举报