导航:首页 > 编程语言 > java年月正则

java年月正则

发布时间:2023-02-11 21:20:45

‘壹’ 用java正则表达式怎么匹配年月日(比如要求输入为出生日期)

建议使用 ^(\d{2}|\d{4})[-/](0?[1-9]|1[12])[-/](0?[1-9]|[12]\d|3[01])$ 来匹配(日期不一定有效),然后尝试转换成日期.如果要严谨点可以用^(\d{2}|\d{4})[-/](((0?[13578]|10|12)[-/](0?[1-9]|[12]\d|3[01]))|((0?[469]|11)[-/](0?[1-9]|[12]\d|30))|(0?2[-/](0?[1-9]|[12]\d)))$但是这里还是有个问题:将所有年份的2月29日都当作有效日期

‘贰’ java 日期正则表达式,求助!!!

Stringregex="^[1-9]\d{3}u5e74((0?[1-9])|(1[0-2]))u6708$";

‘叁’ JAVA 正则法则如有验证年份

目前仍没有人解决1、3、5、7、8、10、12月是31天的大月问题呀
(我本是1楼)如果用正则去验证“数值”,会很舍近求远,不是正则的强项。需要写很多的“向后断言”。效率会一般甚至很低。(目前我看到的上下楼的都是有漏洞的,没法检验闰月和大小月)
我所不取。

我一直用的这个:
static public boolean isValidDate(
int year, int mon, int day,
short year_min,short year_max,
StringBuffer msg)
{
if(year<year_min || year>year_max)
{
msg.append("年份必须在("+
year_min+"~"+year_max+
")之间,输入值("+year+")无效\n");
return false;
}else{//
switch(mon){
case 1:case 3:case 5:case 7:case 8:case 10:case 12:{
if(day<1 || day>31){
msg.append("日号必须在(1~31)之间,输入值("+day+")无效\n");
return false;
}
}break;
case 2:{
if(isLeapYear(year) && day>29){
msg.append("闰年的闰二月日号必须在(1~29)之间,"+year+"是闰年,输入值("+day+")无效\n");
return false; }else if(day>28){
msg.append("非闰年的闰二月的日号必须在(1~28)之间,"+year+"不是闰年,输入值("+day+")无效\n");
return false;
}
}break;
case 4:case 6:case 9:case 11:{
if(day<1 || day>30){
msg.append("日号必须在(1~30)之间,输入值("+day+")无效\n");
return false;
}

}break;
default:{
msg.append("月份必须在(1~12)之间,输入值("+mon+")无效\n");
return false;

}
}
}
return true;
}
static public boolean isLeapYear(int year){
return (year%4==0 && year%100!=0)|| year%400==0;
}
包好。

‘肆’ java验证日期"yyyyMMdd"正则表达式,

正则表达式如下
/^(\d{4})-(\d{2})-(\d{2})$/

‘伍’ Java中如何用正则表达式找出各种表达形式的日期

package tool;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class StringCruncher
{
public static void main ( String[] args )
{
String str = "注意我这里说2011-09-13的是找出,不是验证什么格式之类的。比如说str1=\"你好2014-09-13哈哈\"这样一个字符串,里面有日期,但是用str1.matches(regex)的话得出来的结果是错的,请问该怎么做?";
String reg ="\\d+\\-\\d+\\-\\d+";
Pattern pattern = Pattern.compile (reg);
Matcher matcher = pattern.matcher (str);
while (matcher.find ())
{
System.out.println (matcher.group ());
}
}
}

‘陆’ Java里面效验日期的正则表达式

publicstaticvoidmain(String[]args)
{
StringcheckValue="20000431112230";
Stringyear=checkValue.substring(0,4);//获取年份
Stringmonth=checkValue.substring(4,6);//获取月份
BooleanisLeap=leapYear(Integer.parseInt(year));//判断闰年
System.out.println(isLeap);
StringBuffereL=newStringBuffer();
StringlongMonth="01030507081012";//31天的月份
Stringfix="([2][0-3]|[0-1][0-9]|[1-9])[0-5][0-9]([0-5][0-9]|[6][0])";


if(isLeap&&month.equals("02")){//针对2月份的情况【闰年】
eL.append("\d{4}([1][0-2]|[0][0-9])([2][0-1]|[1-2][0-9]|[0][1-9]|[1-9])"+fix);
}elseif(!isLeap&&month.equals("02")){//针对2月份的情况【非闰年】
eL.append("\d{4}([1][0-2]|[0][0-9])([2][0-1]|[1-2][0-8]|[0][1-9]|[1-9])"+fix);
}elseif(longMonth.contains(month)){//31天月份
eL.append("\d{4}([1][0-2]|[0][0-9])([3][0-1]|[1-2][0-9]|[0][1-9]|[1-9])"+fix);
}else{//30天月份
eL.append("\d{4}([1][0-2]|[0][0-9])([3][0]|[1-2][0-9]|[0][1-9]|[1-9])"+fix);
}
Patternp=Pattern.compile(eL.toString());
Matcherm=p.matcher(checkValue);
booleanflag=m.matches();
if(flag)
{
System.out.println("格式正确");
}
else
{
System.out.println("格式错误");
}

}
publicstaticbooleanleapYear(intyear){
BooleanisLeap=false;
if(((year%100==0)&&(year%400==0))
||((year%100!=0)&&(year%4==0)))
isLeap=true;
returnisLeap;
}

‘柒’ 用JAVA正则表达式怎么匹配年月日

// //2009-01-01 12:30:30 //年-月-日
String reg = "^\\d{4}-0[1-9]|1[1-2]-0[1-9]|[1-2]\\d|3[0-1] [0-2][0-4]:[0-6]\\d:[0-6]\\d$";

//01/01/2009 12:30:30 月/日/年
String reg2 = "^[0[1-9]|1[1-2]/0[1-9]|[1-2]\\d|3[0-1]/\\d{4} [0-2][0-4]:[0-6]\\d:[0-6]\\d$";

阅读全文

与java年月正则相关的资料

热点内容
服务器主机如何设置启动 浏览:282
linux配置网络命令 浏览:774
一张照片怎么制作视频app 浏览:908
pythonweb和php 浏览:976
电脑服务器地址ip地址 浏览:823
对矩阵压缩是为了 浏览:910
setfacl命令 浏览:172
linux子系统中断 浏览:342
linux查看进程ps 浏览:224
知识库系统php 浏览:623
小波变换压缩图像python 浏览:151
阿里巴巴程序员怎么月入百万 浏览:173
如何使用国外服务器 浏览:188
燃灯者pdf 浏览:468
编译器用数学吗 浏览:7
图形化apk反编译工具 浏览:48
考勤表加密怎么办 浏览:735
arj压缩与解压批处理怎么写 浏览:658
php和大数据哪个好 浏览:930
未来最值得投资的加密货币 浏览:526