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

标签 c# regex

我看过这个CheatSheet for Regex in C#

但是,我正在尝试创建一个正则表达式函数来代替它:

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("?", "_");

我根本不知道如何编写正则表达式来为我解决这个问题。 谁能帮帮我?

最佳答案

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, "_");

关于c# - 正则表达式而不是 string.replace 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13967672/

相关文章:

c# - 我可以使用对象列表作为字典键吗?

CFB 中的 C# AES 加密,其中明文长度等于加密长度

php - 使用 preg_replace 的 '&' 字符正则表达式

regex - 使用 SED 和 REGEX 替换文本中的某些字符串

c# - 将多维数组元素转换为不同类型

c# - .FormatString 属性对绑定(bind)没有影响

c# - 从列表中选择随机项目的快速方法 - 基于项目值的不同概率?

python - 正则表达式/Python 错过了包含模式

python - 在大数据集的 pandas 数据框中搜索和替换

python - 如何在 Python 中仅替换一次正则表达式?