正则表达式

来源:互联网 发布:日本经济数据统计局 编辑:程序博客网 时间:2024/05/21 09:46

这篇文章大体介绍正则表达式,以后再用不着找了,之后有一个日期的格式校验。  

背景:

之前有篇博客写Excel导入MySQL但是导入数据都是INT型的,基本不用校验,后来老师说用一个学生表,结构如下,

CREATE TABLE `xsb` (
   `xh` char(6) NOT NULL,
   `xm` varchar(8) NOT NULL,
   `xb` bit(1) default NULL,
   `cssj` datetime default NULL,
   `zy_id` int(11) NOT NULL,
   `zxf` int(11) default NULL,
   `bz` varchar(500) default NULL,
   `zp` mediumblob,
   PRIMARY KEY  (`xh`)
 ) ENGINE=MyISAM DEFAULT CHARSET=gbk CHECKSUM=1 DELAY_KEY_WRITE=1 ROW_FORMAT=DYNAMIC

各种数据,从Excel导入时就需要转换,并且之前最好要校验以保证之后持久化不会出错,例如性别 是 一位的 bit   只需 转换成int  并>=0&&<=1  这些都不是问题,但是日期就很麻烦 我的日期格式是:yyyy/MM/dd  对它校验正则表达式很方便。

 

进入正题:

正则表达式是用来校验一个String是否符合格式要求

 

方法: publicboolean matches(String regex)  //判断当前字符串是否符合  括号里的格式

 

例如:   String str="3hello";

     if(str.matches("\\dhello"))    // “\\dhello” 其中\\d表示0~9 中任意一个   从而判断str 是否符合一个数字加hello的格式

{System.out.print("f符合格式");}

 

。             任意一个字符

\\d                        0到9的一个
              \\D                        任意一个非数字字符

\\s                         空格类字符 ‘\t’  ‘\n’  ‘\x0B’  ‘\f’  ‘\r’ 

\\S                        非空格类字符      

\\w                        可用于标示的字符(不包括美元字符)

\\W                       不能用于标示符的字符

\\p{Lower}            小写字母a~z

\\p{Upper}            大写字母

\\p{Alnum}          字母或数字   

\\p{Graph}            可打印字符

\\p{Blank}             空格或制表符[\t]

 

带限定符号的模式

X?                X出现0或1次

X*                 X出现0或多次

X+                 X出现1次或多次

X{n}             X恰好出现n次

X{n,}            X至少出现n次

X{n,m}          X出现n次至m次

 

 

下面简单例子:

 

时间      要校验 时间是否符合  1989/2/15  1990/15/2    (斜杠连接)

              \\d{4}[/]\\d{1,2}[/]\\d{1,2}

 

if(string.matches(“\\d{4}[/]\\d{1,2}[/]\\d{1,2}”))

原创粉丝点击