正则表达式而不是string.replace函数

Rob*_*Rob 3 c# regex

在C#中看过这个用于Regex的CheatSheet

但是,我正在尝试创建一个可以替换它的正则表达式函数:

while (fname.Contains(".."))
{
    fname = fname.Replace("..", ".");
}
if (fname.StartsWith(".")) { 
    fname=  fname.Remove(0, 1);
}
fname = fname.Replace("&", "_");
fname = fname.Replace("#", "_");
fname = fname.Replace("{", "_");
fname = fname.Replace("}", "_");
fname = fname.Replace("%", "_");
fname = fname.Replace("~", "_");
fname = fname.Replace("?", "_");
Run Code Online (Sandbox Code Playgroud)

我根本就没有得到如何编写将为我解决这个问题的正则表达式.任何人都可以帮我一把吗?

Dmi*_*oly 7

string dotsPattern = @"\.\.+"; //2 or more dots.
fname=Regex.Replace(fname, dotsPattern ,".");
String firstSymbolDot = @"^\.";
fname = Regex.Replace(fname, firstSymbolDot, String.Empty);
string symbolPattern = "[&#{}%~?]"; //any of given symbol;
string result = Regex.Replace(fname, symbolPattern, "_");
Run Code Online (Sandbox Code Playgroud)