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

时间:2015-02-16 15:37:07

标签: c# string replace

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

如果是"%%%A%%B%%C%%",则应为"%A%B%C%"

我该怎么做?

4 个答案:

答案 0 :(得分:16)

Regex.Replace方法的解决方案:

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

这将对它进行排序:

    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);
    }

答案 3 :(得分:0)

尝试正则表达式。

        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%"

相关问题