有沒有什麼方法可以寫一個正則表達式,它只能在一個日期時間字符串中驗證一種類型的分隔符?RegEx中一個日期時間字符串中的一種分隔符類型
例如,30/04/2010是正確的,但30-04/2010不正確。
我搜索了一些關於回溯的信息,但我不太清楚如何使用它。舉例來說,如果我有這個正則表達式:
(?P<date>((31(?![\.\-\/\—\ \,\–\-]{1,2}(Feb(ruary)?|Apr(il)?|June?|(Sep(?=\b|t)t?|Nov)(ember)?)))|((30|29)(?![\.\-\/\—\ \,\–\-]{1,2}Feb(ruary)?))|(29(?=[\.\-\/\—\ \,\–\-]{1,2}Feb(ruary)?[\.\-\/\—\ \,\–\-]{1,2}(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)))))|(0?[1-9])|1\d|2[0-8])[\.\-\/\—\ \,\–\-]{1,2}(Jan(uary)?|Feb(ruary)?|Ma(r(ch)?|y)|Apr(il)?|Ju((ly?)|(ne?))|Aug(ust)?|Oct(ober)?|(Sep(?=\b|t)t?|Nov|Dec)(ember)?)[\.\-\/\—\ \,\–\-]{1,2}((1[6-9]|[2-9]\d)\d{2}))
那麼我怎麼使用走回頭路嗎?
非常感謝。
你爲什麼要這麼做?讓用戶以任何可以理解的方式輸入日期。 「30-04/2010」顯然是2010年第30個月的第4天,所以你應該接受它。 ;-)幫助用戶,不要打她。 – 2010-07-05 11:10:17
假設我們有這個字符串09/07-10/12。我希望regEx將09/07和10/12作爲兩個日期。否則,09/07-10可能會作爲一個日期不匹配。 – James 2010-07-05 12:19:00