作者gary8520 (元丁)
看板RegExp
标题[问题] 批次将档名中的日期移至开头
时间Mon Apr 13 11:04:24 2015
各位大大:
我是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://webptt.com/cn.aspx?n=bbs/RegExp/M.1428894268.A.4DE.html
1F:推 mars90226: (.*)(20\d{2}\.(?:0?[1-9]|1[0-2])\.(?:0?[1-9]|[12][0 04/13 19:59
2F:→ mars90226: -9]|3[01]))(.*) 04/13 19:59
3F:→ mars90226: 你的规则挺仔细的XD 不过?=是lookahead,然後中间没用 04/13 20:00
4F:→ mars90226: 的括号要用?:避免抓取 04/13 20:00