我对一堆我想改变的文件有一个命名约定,所以我使用的是Metamorphose程序。它使用正则表达式来选择文件,并使用正则表达式基于替换选择性地更改文件名的部分。
我在替换我的文件名的一部分时遇到了一些问题(我昨晚管理了它,但忘记了我键入的内容)。基本上我想在“) - ”之后瞄准所有东西并擦拭它。
例如:“IMG2061211-(2011.09.08)-shot for web”我想定位“为网络拍摄”并摆脱它。此值有时会更改并有数字。
我可以使用(?:\)-)+.*
选择所有文件,但我一直无法选择结尾部分来替换任何内容。
编辑特异性:
我基本上已经多次使用文件名来替换不同的部分,并且想知道是否有更好的方法去做。
文件名的一个例子是:Verdrahtung-Fibre_Optik-(RR01612)-XVF221-2011
我想要实现的是不那么愚蠢的东西。我只想实现Verdrahtung - Fibre Optik [RR01612]
我一直在逐步进行,使用\)-.*
删除)-
并将其替换为]
。
然后,我使用\(
删除-(
并将其替换为[
。
然后我将任何_
归零。
还有更好的方法吗?
答案 0 :(得分:1)
您可以搜索\)-.*
并替换为)
。
这将删除文件名中第一个)-
后的所有内容。
如果Metamorphose支持外观断言,那么搜索
会更安全一点(?<=\))-(?:(?!\)-).)*
并且一无所获。这将删除文件名中最后一个)-
之后的所有内容。
编辑:至于您的示例,您可以搜索
(.*)-\(([^)]*)\)-.*
并将其替换为
$1 [$2]
(如果这不起作用,请尝试\1 [\2]
)。这会将Verdrahtung-Fibre_Optik-(RR01612)-XVF221-2011
更改为Verdrahtung-Fibre_Optik [RR01612]
。用空格替换下划线必须在第二步中完成,除非总有一个下划线。
答案 1 :(得分:0)
^([^\)]+)-(.*)$
然后\ 1给出'IMG2061211-(2011.09.08)
',\ 2给出'shot for web
'。
另外,请查看Regex Tester。
答案 2 :(得分:0)
http://regexrenamer.sourceforge.net/
试试这个,这将解决所有主要的正则表达式模式