java 正则表达式 判断日期格式_Java中用正则表达式判断日期格式是否正确

1、Java中用正则表达式判断日期格式是否正确

DateType.java:

/**

* @Title:DateType.java

* @Package:com.you.dao

* @Description:

* @Author: 游海东

* @date: 2014年3月8日 下午10:54:50

* @Version V1.2.3

*/

package com.you.dao;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

/**

* @类名:DateType

* @描述:

* @Author:游海东

* @date: 2014年3月8日 下午10:54:50

*/

public class DateType

{

/**

*

* @类名:DateSelect

* @描述:

* @Author:游海东

* @date: 2014年3月8日 下午11:09:37

*/

public static class DateSelect

{

public boolean isDate(String date)

{

/**

* 判断日期格式和范围

*/

String rexp = "^((\\d{2}(([02468][048])|([13579][26]))[\\-\\/\\s]?((((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])))))|(\\d{2}(([02468][1235679])|([13579][01345789]))[\\-\\/\\s]?((((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))";

Pattern pat = Pattern.compile(rexp);

Matcher mat = pat.matcher(date);

boolean dateType = mat.matches();

return dateType;

}

}

/**

* @Title : main

* @Type : DateType

* @date : 2014年3月8日 下午10:54:50

* @Description :

* @param args

*/

public static void main(String[] args)

{

/**

* 日期格式正确

*/

String date1 = "2014-01-03";

/**

* 日期范围不正确---平年二月没有29号

*/

String date2 = "2014-02-29";

/**

* 日期月份范围不正确---月份没有13月

*/

String date3 = "2014-13-03";

/**

* 日期范围不正确---六月没有31号

*/

String date4 = "2014-06-31";

/**

* 日期范围不正确 ----1月超过31天

*/

String date5 = "2014-01-32";

/**

* 这个测试年份

*/

String date6 = "0014-01-03";

DateSelect date = new DateSelect();

/**

* 打印正确日期格式

*/

System.out.println(date.isDate(date1));

/**

* 打印date1

*/

System.out.println(date.isDate(date2));

/**

* 打印date3

*/

System.out.println(date.isDate(date3));

/**

* 打印date4

*/

System.out.println(date.isDate(date4));

/**

* 打印date5

*/

System.out.println(date.isDate(date5));

/**

* 打印date6

*/

System.out.println(date.isDate(date6));

}

}2、运行结果

true

false

false

false

false

true

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java正则表达式截取可以使用java.util.regex包下的Pattern和Matcher类来实现。首先,你需要创建一个正则表达式对象,使用Pattern.compile()方法并传入你的正则表达式作为参数。然后,你可以使用Matcher类的find()方法来寻找匹配的子串。最后,你可以使用Matcher类的group()方法来获取匹配到的子串。 例如,如果你想要截取一个字符串中包含在"ns=["和"]"之间的子串,你可以使用如下的正则表达式:"(?<=ns=\[).*?(?=])"。这个正则表达式会匹配以"ns=["开头,以"]"结尾的子串。 具体的实现步骤如下: 1. 创建一个正则表达式对象,使用Pattern.compile()方法,并传入你的正则表达式作为参数。 2. 创建一个Matcher对象,使用pattern.matcher()方法,并传入你要匹配的字符串作为参数。 3. 使用Matcher对象的find()方法来查找匹配的子串。 4. 使用Matcher对象的group()方法来获取匹配到的子串。 下面是一个示例代码: ```java String content = "ns=[example]"; String regex = "(?<=ns\\<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Java中用正则表达式截取字符串](https://blog.csdn.net/ysaicll/article/details/78824330)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [java正则表达式截取特定字符串内容](https://blog.csdn.net/u013037007/article/details/125934538)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值