正则表达式

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

背景:

之前有篇博客写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}”))

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值