C#替换字符所有出现的只是一个字[复制](C# replace all occurrences of

2019-10-21 21:32发布

这个问题已经在这里有一个答案:

  • 在C#中的字符串替换多个字符 10个回答

比方说,我有这样的字符串, "%%%%%ABC" ,我想,以取代所有的"%"只用一个"%" ,所以应该是"%ABC"

如果它的"%%%A%%B%%C%%"它应该是"%A%B%C%"

我应该怎么办呢?

Answer 1:

还设有一个溶液Regex.Replace方法:

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


Answer 2:

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

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


Answer 3:

这会对其进行排序:

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


Answer 4:

尝试正则表达式。

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



文章来源: C# replace all occurrences of a character with just a character [duplicate]