首页 > 其他 > 详细

用正则表达式批量重命名

时间:2020-03-27 18:20:56      阅读:86      评论:0      收藏:0      [点我收藏+]

最近拍了一些照片,开始有意识地上传到PPBC中国图像库保存。PPBC有自动识别的功能,即文件名中包含植物拉丁文名或中文名的情况下,系统可以自动鉴定为相应的物种。这就经常需要对图片重命名,我一般随手写个.bat文件,用dos的rename命令搞一下,非常便捷高效。但人老了总是很糊涂,一是经常记不住相应的命令,像今天建了个txt文件写好了命令,却忘了可执行文件的后缀是啥,改了啥.exe .cmd,真丢人;二是正则匹配经常翻车,下面重点记录下正则表达式的匹配情况。

 

D:\photo\2020\0326观光木\手机 目录下有一批文件,格式是这样的:

IMG_20200326_153346.jpg

IMG_20200326_153346.jpg 这是华为手机的自动命名方式,IMG开头加上日期,再加上一串6位的数字,其中前两位还是保持不变的。

 

我的本意是想在文件名后面加上“_观光木”,于是写了以下命令:

rename IMG_20200326_15*.jpg IMG_20200326_15*_观光木.jpg

结果文件被命名成这样了:

IMG_20200326_153346.jpg_观光木.jpg

把所有的都匹配上了,超吓人的有木有?

 

改成这样只好去好好研究一下正则表达式,然后想办法改回来:

rename IMG_20200326_15[0-9]{4}.jpg_观光木.jpg IMG_20200326_15[0-9]{4}_观光木.jpg

我用在线检测工具测试过,这样是可以匹配到的,但却无法执行后续的重命名操作。

 

为什么?难道是命令太复杂了?改了一种写法:

rename IMG_20200326_15????.jpg_观光木.jpg IMG_20200326_15????_观光木.jpg

它就好了。这是什么原理我还搞不明白,姑且先记录之。

用正则表达式批量重命名

原文:https://www.cnblogs.com/wildorchid/p/12582587.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!