帶閏年判斷的正規表示式

2021-03-31 08:56:31 字數 1513 閱讀 9986

xixigongzhu(夕夕公主)

首先,你的年的範圍是1800-3999

潤年:1800,1900,2100,2200,2300,2500,2600,2700,2900,3000,3100,3300,3400,3500,3700,3800,3900是個特殊值(能被4整除但不是潤年),要分出來:

string leap1 = "(((1[8-9])|([2-3][0-9]))(0|2|4|6|8)(4|8))";

string leap2 = "(((2(0|4|8))|(3(2|6)))00)";

其他的0結尾的:

string leap3 = "(((1[8-9])|([2-3][0-9]))(2|4|6|8)0)";

2,6結尾的:

string leap4 = "(((1[8-9])|([2-3][0-9]))(1|3|5|7|9)(2|6))";

潤年2月:

string leapmonth = "(02-(([0-1][1-9])|(10)|(2[0-8])))";

其它月份:

string other1 = "(((01)|(0[3-9])|(1[0-2]))-(([0-2][1-9])|([1-3]0)))";

string other2 = "(((0(1|3|5|7|8))|(10)|(12))-(31))";

把上面4種正規表示式用|連線,然後加上潤年的2月和其他月份的處理:

string leap = "(" + leap1 + "|" + leap2 + "|" + leap3 + "|" + leap4 + ")-("

+ leapmonth + "|" + other1 + "|" + other2 + ")";

非潤年:

string noleap1 = "(((1[8-9])|([2-3][0-9]))(0|2|4|6|8)(1|2|3|5|6|7|9))";

string noleap2 = "(((1[8-9])|(2(1|2|3|5|6|7|9))|(3(0|1|3|4|5|7|8|9)))00)";

string noleap3 = "(((1[8-9])|([2-3][0-9]))(1|3|5|7|9)(0|1|3|4|5|7|8|9))";

非潤年2月:

string month = "(02-(([0-2][1-9])|([1-2]0)))";

把上面3種正規表示式用|連線,然後加上非潤年2月和其他月份的處理:

string noleap = "(" + noleap1 + "|" + noleap2 + "|" + noleap3 + ")-("

+ month + "|" + other1 + "|" + other2 + ")";

潤年和非潤年的正規表示式的組合就是了:

string yearregex = leap + "|" + noleap;

帶閏年判斷的正規表示式

xixigongzhu 夕夕公主 首先,你的年的範圍是1800 3999 潤年 1800,1900,2100,2200,2300,2500,2600,2700,2900,3000,3100,3300,3400,3500,3700,3800,3900是個特殊值 能被4整除但不是潤年 要分出來 stri...

正規表示式判斷

public class test 校驗輸入的qq號碼是否符合規則 param qq return public static boolean checkqq1 string qq 如果qq號碼中有任何一位不是數字,就直接返回false for int i 0 i qq.length i 如果首位是...

正規表示式的判斷

給定一個字串,判斷其是否為合法的正規表示式。一個正規表示式定義為 1 0是正規表示式,1也是正規表示式。2 p和q都是正規表示式,則pq是正規表示式。3 p是正規表示式,則 p 是正規表示式 4 p是正規表示式,則p 也是正規表示式 5 p和q都是正規表示式,則p q是正規表示式。輸入 輸入包含多組...

js驗證日期的正規表示式加入閏年的判斷

進入正題之前,我們需要澄清兩個概念 一,什麼是合法的日期範圍?對於不同的應用場景,這個問題有不同的解釋。這裡採納msdn中的約定 datetime值型別表示值範圍在公元 紀元 0001 年 1 月 1 日午夜 12 00 00 到公元 c.e.9999 年 12 月 31 日晚上 11 59 59 ...

javascript正規表示式判斷

整數格式 patternsdict.long 0 1 9 d 小數格式 patternsdict.double 0 1 9 d d 數值格式 patternsdict.number 0 1 9 d 0 1 9 d d 自然數 patternsdict.positive 1 9 d 負整數 patte...