C#仅用一个字符替换所有出现的字符
假设我有这个字符串,C#仅用一个字符替换所有出现的字符,c#,string,replace,C#,String,Replace,假设我有这个字符串,“%%%ABC”,我想用一个“%”替换所有的“%%”,所以它应该是“%ABC” 如果其“%%A%%B%%C%%”,则应为“%A%B%C%” 我应该如何执行此操作?有一个使用Regex的解决方案。替换方法: private static string TruncatePercents(string input) { return Regex.Replace(input, @"%+", "%"); } 如果要将一个或多个非单词字符替换为同一个非单词字符,请使用此选项 s
“%%%ABC”
,我想用一个“%”替换所有的“%%”
,所以它应该是“%ABC”
如果其“%%A%%B%%C%%”
,则应为“%A%B%C%”
我应该如何执行此操作?有一个使用Regex的解决方案。替换方法:
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%”并且它只是用于%
还是您也有“##A#B#C”
?到目前为止,我只处理“%”。我面临的问题是,我有一个程序,用户可以使用SQL过滤器过滤值。如果他们输入诸如“%%%ABC”之类的内容而不是“%ABC”,我的程序就会冻结,当然我会将“%”转换为“.*”以符合正则表达式。