【问题标题】:Regular Expression to switch out parts of file names?正则表达式切换部分文件名?
【发布时间】:2013-08-24 02:52:40
【问题描述】:

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

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、日期、地点、标题)并允许我根据需要重新排列它们。

我希望从中吸取教训,以便下次我可以自己做!

【问题讨论】:

  • 标题总是三个字吗?
  • 这个地方总是一个字吗?
  • 都是mp4吗?如果没有,可能的扩展是什么?

标签: regex replace expression rename


【解决方案1】:

如果该地点和公司都不会包含.,则应该可以:

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

^ 将正则表达式锚定到字符串的开头(而末尾的 $ 将其锚定到末尾)。

([^.]+) 部分是非. 字符组(公司、地点和分机)。

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

(.*) 将捕获到最后一个句点(标题)的其余部分。

【讨论】:

  • 太棒了,谢谢。非常有帮助,工作,感谢您的解释,我什至能够为一个 wmv 修改它:-) 再次感谢。
  • 更新完整性以适用于任何扩展(并捕获它)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-27
  • 1970-01-01
  • 2019-01-29
  • 2011-01-06
  • 2015-06-06
相关资源
最近更新 更多