1. 程式人生 > >讀取csv文件和匹配時間的正則表達式

讀取csv文件和匹配時間的正則表達式

字段 一個 則表達式 不難 什麽 規則 數字 需要 繼續

今天又和前端聯調了一天的程序,比較煩。產品有個需求是日期和時間分開顯示的,正常都是兩個連在一起然後用空格隔開,因為要想校驗時間的對錯,就需要把傳過來的時間用strtotime轉換成時間戳,然後在用date轉換成時間格式,但是若是傳的時間格式不對,那麽最後轉換成的時間就是unix的初始時間08:00:00,這樣存在一個問題就是萬一活動的開始時間就是08:00:00呢?所以我就把日期和時間放在一起轉成時間戳,因為不管日期還是是時間出錯,只要有一個錯的傳換回來的日期已一定會是1970-01-01,所以根據日期一旦是這個,我就提示日期或時間出錯。這不是最煩的,今天 最煩的是匹配時間的正則表達式,當初學正則表達式的時候覺得沒什麽,那麽規則太多記不住,也沒想背,想著用的時候上網一查就有了,呵呵,真的是一查就有了,但是大多數都不靠譜!!!今天就是因為這個正則卡了我好久,後來還是自己寫的管用,自己之前的想法是錯的,學什麽不能差不多就行,到真正用的時候就會吃大虧。今天處理問題的時候也有些急躁,感覺有點不冷靜了,哎,看來還要繼續修煉啊,成仙的路還遠著呢。不說了奉上我的時間正則表達式:(([0-1][0-9])|2[0-3]):([0-5][5-9]):([0-5][0-9]),其實也不難,但是一定要註意的是在函數裏用的時候一定要在開頭結尾加上 / 。

今天的第二個問題是讀取的文件每行後面會多一個換行符,這樣每行的最後一個字段就會多一個字符,尷尬的是我的很多最後一個字段都是數字或是數字字符串,我要判斷他們是否是數字,用is_numeric(),這樣這個換行符就會影響我的判斷,最後只能在分割字符串的時候用substr($str,0,-1)把最後的換行符去掉。。。

讀取csv文件和匹配時間的正則表達式