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

看板RegExp (正規表示式 Regular Expression)作者 (元丁)時間10年前 (2015/04/13 11:04), 編輯推噓1(103)
留言4則, 1人參與, 最新討論串1/1
各位大大: 我是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 但是一直都是錯誤跑不出來… -- -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.171.34.39 ※ 文章網址: https://www.ptt.cc/bbs/RegExp/M.1428894268.A.4DE.html

04/13 19:59, , 1F
(.*)(20\d{2}\.(?:0?[1-9]|1[0-2])\.(?:0?[1-9]|[12][0
04/13 19:59, 1F

04/13 19:59, , 2F
-9]|3[01]))(.*)
04/13 19:59, 2F

04/13 20:00, , 3F
你的規則挺仔細的XD 不過?=是lookahead,然後中間沒用
04/13 20:00, 3F

04/13 20:00, , 4F
的括號要用?:避免抓取
04/13 20:00, 4F
文章代碼(AID): #1LAp8yJU (RegExp)
文章代碼(AID): #1LAp8yJU (RegExp)