使用regexp批量重命名

时间:2015-09-03 22:28:14

标签: regex

我正在使用批量重命名实用程序来更改许多文件的名称。这些文件的名称与此类似:

Albert_Silva-MR11_0.dcm

在每个文件夹上,有一些名称相同的文件,只更改最后一个数字,例如:

Albert_Silva-MR11_13.dcm

所以,我试图找到正则表达式来匹配文件中的最后一个_字符之前的所有内容,以便用“slice”替换它。在该示例中,“Albert_Silva-MR11_0.dcm”将变为“slice_0.dcm”。请注意,某些文件名具有两个以上的_,因此查找第二个_将无效。

2 个答案:

答案 0 :(得分:1)

你可以使用贪心匹配:

^.*_(\d+\.dcm)

并替换为slice_$1

请参阅demo

^可能是多余的(取决于工具处理正则表达式的方式),它强制在字符串的开头匹配。 .*匹配所有字符到最后,然后回溯在最终_之前的位置找到该字符,并匹配该文本。 (\d+\.dcm)匹配并捕获将在$1(或\1)反向引用的帮助下放回的最后一个数字和扩展名。

答案 1 :(得分:0)

最后锚定我的朋友:

(_\d+\.dcm)$

Demo