这个问题已经在这里有一个答案:
- 在C#中的字符串替换多个字符 10个回答
比方说,我有这样的字符串, "%%%%%ABC"
,我想,以取代所有的"%"
只用一个"%"
,所以应该是"%ABC"
。
如果它的"%%%A%%B%%C%%"
它应该是"%A%B%C%"
我应该怎么办呢?
这个问题已经在这里有一个答案:
比方说,我有这样的字符串, "%%%%%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)+", "$1");
这会对其进行排序:
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%”