-
d- d- d d:d:d標準日期加時間。 滿意。
-
d- d- d d:d:d標準日期加時間。
-
最簡單的正規表示式如下:d- d- d
但現實並沒有那麼簡單,要考慮,有效性和閏年等等。
對於不同的應用場景,有效日期範圍會有所不同。 msdn 中定義的 datetime 物件的有效範圍為:0001-01-01 00:
00:00 至 9999-12-31 23:59:
59。UNIX 時間戳的 0 是 ISO 8601 指定的:1970-01-01T00:00:00Z。
考慮前三條與年份無關的規則,年份可以統一寫成。
下面只考慮月份和日期的常規規則。
1.所有年份的月份,包括普通年份,都包含 1 日至 28 日。
2.所有年份,包括普通年份,包括 2 月 29 日和 30 日。
3.所有年份,包括普通年份,都包含 31 天。
總而言之,這是除閏年2月29日之外的所有日期。
接下來,考慮閏年的實施。
1:每四年一次。
2:100年不插閏,400年再閏。
3:總而言之,這是所有閏年的2月29日。
所有四條規則都已實現,彼此之間沒有影響,這四條規則是適合日期時間範圍的所有日期的常規規則。
考慮到這個正規表示式只用於驗證,捕獲組是沒有意義的,只會占用資源,影響匹配效率,所以可以使用非捕獲組進行優化。
資源。
-
閏年必須被判斷,我依賴它。
為什麼必須使用規律性?
-
法定日期的格式太多。
例如,您希望匹配 2015-11-11 之類的格式。
正規表示式:
d-\d-\d
d 表示匹配數字,d 表示匹配 4 位數字,D 表示匹配 1-2 位數字。
如果需要更精確的判斷,可以用 1[0-2]|[1-9] 表示它只能是 1-12,日期也是如此。
但是,建議把這個判斷放在程式中,因為正規表示式只擅長匹配,判斷應該留給**。
同樣,像 4 23 2015 這樣的格式可以與 d d d 匹配。
如果您需要同事來匹配這兩種格式,則可以在兩者之間新增 |標誌,表示或。
d-\d-\d|\d/\d/\d
-
正規表示式擅長匹配,而不是判斷,因此對日期的合法性做出判斷會比較複雜。
尋求的正規表示式如下:
說明:2015-08-(3[0-1]|[1-2][0-9]|0[8-9]) 與 8 月的法定日期匹配。
匹配 15 年大月份的法定日期。
與 15 年的法定日期相匹配。
與 2 月 16 日的法定日期相匹配。
匹配 16 年的大月份。
匹配16年的小月亮。
比賽 10/16。
在中間,使用符號或符號|連線表示 或。
如果不考慮大月份和小月份,可以稍微簡化一下(使用大月份的常規匹配),但你仍然必須至少有 4 行。
-
六到九 1,乙個介於 2 和 9 之間的整數,嘿。 眼花。
你問。 人們仍然很難得到。 有點長... 乍一看,我不想再看了...... 學習不是很好。 再來一次。
e 's/:\+s\+/:/' -e 's/ /_/g'
第一次放置每一行"n 連續 : 和 m 後面的空格"替換為 :將此行中剩餘的相似匹配項替換為 其中 n >= 1, m>=1 >>>More
^(?a-z]+$a-z]+$d+$)w_]+s+$
字串至少有兩種:數字、大寫字母、小寫字母和由非空格字元組成的特殊字元 >>>More
由算術運算子組成的表示式,如加法、減法、乘法、除法等,稱為算術表示式。 任何公式都稱為表示式。 例如,表示式 a>b 稱為關係表示式,例如,and not 稱為邏輯表示式。 >>>More