1,2,3,4,5,6
让它变成
,1,2,3,4,5,6,
再Replace(“,2,”,",")变成 ,1,3,4,5,6,
再变回
1,3,4,5,6
办法看起来好像是笨了点
1.replace 两次(第一次是数字,第二次是两个逗号)
2.通过正则表达式去replace
先使用 split 拆分为字符串数组。
再删除数组中的元素。
最后,使用 string.join 重新连接起来。
直接用正则吧.
private void Form1_Load(object sender, EventArgs e)
{
//1.简单说明
string part1 = "(^,?[136],?)";
string part2 = "((?<=[^136],?)[136],?)";
string part3 = "(,?[136]$)";
string all = string.Format("{0}|{1}|{2}",part1,part2,part3);
string result = Regex.Replace("1,2,3,4,5,6",all , "");
MessageBox.Show(result);
//2.整理成方法,直接调用
MessageBox.Show(ReplaceSimpleStr("1,2,3,4,5,6","136"));
//3.总结:方法不一定是最好的,但是有效.//输出结果都是:2,4,5
}
/// <summary>
/// 替换字符
/// </summary>
/// <param name="input1">用逗号分隔的字符串</param>
/// <param name="input2">需要替换掉的字符集</param>
/// <returns></returns>
public string ReplaceSimpleStr(string input1, string input2)
{
string expression = string.Format("(^,?[{0}],?)|((?<=[^{0}],?)[{0}],?)|(,?[{0}]$)", input2);
return Regex.Replace(input1, expression, "");
}
用数组与或正则表达式可能比较好, 如果单纯的repalce就是实现起来也复杂好多了