精華區beta RegExp 關於我們 聯絡資訊
pattern: /-(\d)(?=\D|$)/i sample: echo preg_replace ("/-(\d)(?=\D|$)/i", '-0\1', '2010-1-8'); echo preg_replace ("/-(\d)(?=\D|$)/i", '-0\1', '2010-01-8'); echo preg_replace ("/-(\d)(?=\D|$)/i", '-0\1', '2010-1-08'); echo preg_replace ("/-(\d)(?=\D|$)/i", '-0\1', '2010-01-08'); output: 2009-01-08 2009-01-08 2009-01-08 2009-01-08 -- 花了好些時間才想出來… orz -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.80.28.216
No:2010 output 2009 也是其功能嘛~? XDDD 01/08 20:44
bibo9901:XD 01/08 21:46
bibo9901:推高手,但這好像不需要用到regexp吧XD? 01/08 22:07
No:若是針對這四種可能,我會用 /-([1-9])/g 來做 01/08 22:31
james732:2010 output 2009 XDDDD 01/09 21:03
othree:to 4樓: 尾巴不檢查遇到 10, 11, 12 月就掛了 01/09 21:13
gpmm:因為不整齊的日期補零很麻煩…囧,不想特地拆字串或丟 func 01/09 21:17
gpmm:啊靠,現在才看到是 2010 output 2009 XDDD 01/09 21:18
No:對耶 我根本沒測10之後 真囧 01/09 22:04
No:我試著再加入檢查結尾,就變成跟原po差不多的pattern了 XD 01/09 22:52
badwork:上面這個可以嗎? 01/10 19:06
gpmm:樓上這個很讚,可是小弟不想先把 string date 轉成 timestamp 01/10 22:06
gpmm:,再用 strftime 濾出來,這樣感覺也有點繞路 XDD 01/10 22:07
gpmm:不過無疑是個好方法~推! 01/10 22:07
bibo9901:date('Y-m-d',strtotime($string)); 01/11 03:15
othree:測了一下還是 Regexp 比較快 01/13 20:13