WEB开发网
开发学院软件开发VC 教你使用正则表达式 阅读

教你使用正则表达式

 2007-03-15 21:54:09 来源:WEB开发网   
核心提示: 好了,砍柴刀磨好了!我们就开始正则表达式的实践吧!当时我负责的MIS是医院的一个血液检验输入模块,教你使用正则表达式(2),要求输入的日期必须是合法的,这是第一要求,10,12月为31天的都为合法, 1 月到 12 月为 28 天的都为合法, 剩下的只要判断当年是否为闰年就行了,不然检验单

好了,砍柴刀磨好了!我们就开始正则表达式的实践吧!

当时我负责的MIS是医院的一个血液检验输入模块,要求输入的日期必须是合法的,这是第一要求,不然检验单就会报废。输入日期是可以2006.04.02 或 2006/04/02 或 2006.4.2 或 2006/4/2 的格式,而且日期还是要合法的,比如说不可以出现 2006.02.31, 2006.4.41 这样的日期,不排除输入人员工作繁记忙输入错误会出现这种情况。

好了,用正则表达式如何解决这个问题,首先正则表达式是一个对文本匹配模式的使用方法,记得正则表达式的关键字用法是没有用的,各种语言的正则表达式中的关键字用法是不同的,要认识文本中字符的模式.比如说对以上日期的表示可以用正则表达式表示为"^\d{4}[\s\.-/]\d{1,2}[\s\.-/]\d{1,2}$"

但这是完全错误的,用文字对这句正则表达式的描述为字符串是由三组数字组成,每一组由四个数组成,第二和第三组由一个或两个数字组成,中间带有空格或"/",4003.9/12,3344.0.40 都会被判为合法的字符,这就是错误的用法!有什么或以判别呢!

有闰日的年份叫闰年,一般年份365天,闰年为366天(二月则有29天),闰年的计算方法:公元纪年的年数可以被四整除,即为闰年;被100整除而不能被400整除为平年;被100整除也可被400整除的为闰年.则这样我们可以这样设计正则表达式,第一个是要求其格式统一,第二个是要求其能正确表达闰年!1000/2/29 合法, 2000/2/29 合法,1900/2/29 非法.

想一想,一年中不论闰年或平年有的月份都是固定的,1,3,5,7,8,10,12月都是 31天, 4, 6, 9, 11 月都是30 天, 2 月可能为 28 或 29天,我们则可以这样判断,除 2 月外, 1 到 12 月中日期为 29, 30 天内的都为合法,1,3,5,7,8,10,12月为31天的都为合法, 1 月到 12 月为 28 天的都为合法, 剩下的只要判断当年是否为闰年就行了,是闰年 2月29日就合法,否则非法!!!

Tags:使用 正则 表达式

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接