❶ 用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中日期的正則表達式
\d{4}-\d{2}-d{2}
不知道你這是什麼語言寫的啊,我提供這個正則表達式是沒有問題的。
❸ java 日期正則表達式,求助!!!
Stringregex="^[1-9]\d{3}u5e74((0?[1-9])|(1[0-2]))u6708$";
❹ 用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裡面效驗日期的正則表達式
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;
}
❻ 表示年月的正則表達式
^20[0-9]{2}[01][0-9]$
[0-9]{2}表示00-99之間
[01]表示接下來這個數只能是0或1,因為不存在22月32月之類的
[0-9]這個表示這個數在0-9之間的任意一個這個正則唯一的漏洞就是匹配00-19之間,但是沒有00這個月,也沒有13,19等月
❼ 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 ());
}
}
}
❽ 表示年月的正則表達式
我們知道月份通常是兩個數字從01-12;所以月份可以採用|這個運算符來解決。當第一個數字式0的時候,第二個數字就可以從1-9,當第一個數字式1的時候,第二個數字就只能從0-2。於是月份的正則表達式可以設計為:var
remonth=/0[1-9]|1[0-2]/;對於年份的正則表達式,我們同樣也可以用|這個運算符來解決,考慮從1900-2099這個范圍的日期(當然你可以根據需要,任意設定,原理一樣),則可以設計年份正則表達式如下:var
reyear=/19|20\d{2}/;於是年月正則表達式就可以設計如下:var
yearmonth=/(?:19|20\d{2})-(?:0[1-9]|1[0-2})/;(其中?:是一個非捕獲性標志)
❾ 年月正則表達式
我們知道月份通常是兩個數字從01-12;所以月份可以採用|這個運算符來解決。當第一個數字式0的時候,第二個數字就可以從1-9,當第一個數字式1的時候,第二個數字就只能從0-2。於是月份的正則表達式可以設計為:var reMonth=/0[1-9]|1[0-2]/;對於年份的正則表達式,我們同樣也可以用|這個運算符來解決,考慮從1900-2099這個范圍的日期(當然你可以根據需要,任意設定,原理一樣),則可以設計年份正則表達式如下:var reYear=/19|20\d{2}/;於是年月正則表達式就可以設計如下:var YearMonth=/(?:19|20\d{2})-(?:0[1-9]|1[0-2})/;(其中?:是一個非捕獲性標志)