C# 用一个字符替换所有出现的字符

C# replace all occurrences of a character with just a character

假设我有这个字符串 "%%%%%ABC",我想用一个 "%" 替换所有 "%",所以它应该是 "%ABC"

如果是"%%%A%%B%%C%%",应该是"%A%B%C%"

我应该怎么做?

Regex.Replace方法的解决方法:

private static string TruncatePercents(string input)
{
    return Regex.Replace(input, @"%+", "%");
}

如果您想用一个相同的非单词字符替换一个或多个非单词字符,请使用此选项。

string result = Regex.Replace(str, @"(\W)+", "");

这将对其进行排序:

    string ProcessText(string s)
    {
       return Regex.Replace(s, @"%+", "%");
    }

编辑 被打败了,所以让我的略有不同并提供不同分隔符的范围:

    private void button1_Click(object sender, EventArgs e)
    {
        label1.Text = ProcessText(textBox1.Text, "%", "#");
    }

    string ProcessText(string s, string delim, string replaceWith)
    {
       return Regex.Replace(s, @""+ delim + "+", replaceWith);
    }

试试正则表达式。

        string strTest = "%%%A%%B%%C%%";
        string strPattern = "%+";
        RegexOptions opt = RegexOptions.IgnoreCase;
        var reg = new Regex(strPattern, opt);
        var strReplaceResult = reg.Replace(strTest, "%");

结果将为“%A%B%C%”