正则表达式切换出部分文件名?

时间:2013-08-21 16:04:18

标签: regex replace expression rename

我有数百个文件,其名称如下:

foo.13.01.02.place.title.of.take.mp4
foo.13.04.23.office.other.title.altogether.mp4
foo.13.12.30.street.yet.another.title.mp4

“foo”将是制作公司(总是相同的),日期跟随(yy/mm/dd),然后是拍摄地点,最后是拍摄的拍摄标题。

我现在想要将所有这些文件重命名为

格式

place - title (foo - date)

我发现正则表达式对此非常有用,我找到了一个名为“BULK RENAME UTILITY”的程序(www.bulkrenameutility.co.uk),它支持使用RegEx重命名文件。

它有两个字段,一个名为“匹配”,您可以在其中输入正则表达式模式以将文件名分成四个部分。

另一个名为“replace”的字段,您可以输入\3 - \4 (\1 - \2.mp4)之类的内容,将文件名重新组合在一起。

我做了一些快速的研究,但正则表达式仍然主要是希腊语,所以我希望有人可以帮助我将正则表达式放在一起,将上面的文件名分解为四个部分(foo,日期,地点,标题)并允许我根据需要重新排列它们。

我希望从中学习,以便下次我可以自己做!

1 个答案:

答案 0 :(得分:1)

如果地方和公司都不包含.,这应该有效:

^([^.]+)\.(\d{2}\.\d{2}\.\d{2})\.([^.]+)(.*)\.([^.]+)$

^将正则表达式锚定到字符串的开头(并且最后的$将其锚定到结尾)。

([^.]+)部分是非.字符组(公司和地点以及扩展名)。

(\d{2}\.\d{2}\.\d{2})捕获日期:数字重复两次,后跟一段时间等等。

(.*)将捕获其余部分(标题)。