[問題] 批次將檔名中的日期移至開頭

作者: gary8520 (元丁)   2015-04-13 11:04:24
各位大大:
我是regexp完全新手"orz,目前只看了教學就發問,正則表達式好難懂…
使用的環境在winxp
並使用Ant Renamer做檔名的批次更換
目前有上千組的檔案要將檔名中的日期移至開頭
例如:ALL STREAM報價 2013.9.22.xls
想換為2013.9.22ALL STREAM報價 .xls
(若可以的話,想把月和日都補為兩位數…)
檔名中的空格可以不處理它
若檔名中沒有日期則不更名
我目前用的表達示如下:
express:
(.*)(?=20[0-9]{2}\.(0?[1-9]|1[012])\.(0?[1-9]|[12][0-9]|3[01]))(.*)
newname:
\1\0\2
但是一直都是錯誤跑不出來…
作者: mars90226 (火星人)   2015-04-13 19:59:00
(.*)(20\d{2}\.(?:0?[1-9]|1[0-2])\.(?:0?[1-9]|[12][0-9]|3[01]))(.*)你的規則挺仔細的XD 不過?=是lookahead,然後中間沒用的括號要用?:避免抓取

Links booklink

Contact Us: admin [ a t ] ucptt.com