这篇文章大体介绍正则表达式,以后再用不着找了,之后有一个日期的格式校验。
背景:
之前有篇博客写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符合格式");}
。 任意一个字符
\\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}”))
611

被折叠的 条评论
为什么被折叠?



