正则表达式 - 从文件名中删除(1)

时间:2015-04-06 13:57:37

标签: c# regex

我有一些名称相同但有"(1)" "(2)" "(3)"追加给他们。不幸的是,我对正则表达式感到非常恐怖。有人可以帮助我使用正则表达式字符串从整个文件名中删除尾部(2)。

例如:

MyFile(1).jpg >> MyFile.jpg
AnotherFile(3).docx >> AnotherFile.docx
Last.Example.Boo(999).xlsx >> Last.Example.Boo.xlsx

非常感谢!

2 个答案:

答案 0 :(得分:3)

嗯,可以这样做:

string name = "Last.Example.Boo(999).xlsx";
string newName = Regex.Replace(Path.GetFileNameWithoutExtension(name), @"\(\d+\)$", "") 
    + Path.GetExtension(name);

这将删除文件名中(any_number)的最后一次出现。

答案 1 :(得分:1)

通过正则表达式,就可以这样做,

string result = Regex.Replace(str, @"\(\d+\)(?=\.[^.]+$)", "");

DEMO