假设我有这个字符串"%%%%%ABC"
,我想用"%"
替换所有"%"
,因此它应该是"%ABC"
。
如果是"%%%A%%B%%C%%"
,则应为"%A%B%C%"
我该怎么做?
答案 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%"