110,571
社区成员
发帖
与我相关
我的任务
分享
string names = "张一,王二,李三,王小汪,莉莉";
string filter = "李三";
string res = names.Replace(filter, "").Replace(",,", ",");
string names = "张一,王二,李三,王小汪,莉莉";
string filter = "李三";
string res = names.Replace(filter + ",", "").Replace("," + filter, "");
@"(,)?\b张三\b(,)?"
要在替换方法里面判断m.Groups[1].Success和m.Groups[2].Success,只有当两者都匹配时,替换为逗号,否则替换为空
算了,直接上代码吧
string[] arr = { "大一,张三,李四,王五", "大一,张三", "张三,李四" };
foreach (var str in arr)
{
Console.WriteLine(Regex.Replace(str, @"(,)?\b张三\b(,)?", m =>
{
if (m.Groups[1].Success && m.Groups[2].Success)
{
return ",";
}
return string.Empty;
}));
}
var s = "张一,王二,李三,王小汪,莉莉";
//正则
Console.WriteLine(Regex.Replace(s, string.Format("(?<=^|,){0}(,|$)", "张一"), ""));
Console.WriteLine(Regex.Replace(s, string.Format("(?<=^|,){0}(,|$)", "莉莉"), ""));
Console.WriteLine(Regex.Replace(s, string.Format("(?<=^|,){0}(,|$)", "李三"), ""));
//字符串+集合
var r = s.Split(',').Except(new string[] { "王二" });
Console.WriteLine(string.Join(",", r));
static void Main()
{
string s = RemoveNameA("a,b,c,d,e", "c");
Debug.WriteLine(s);
string t = RemoveNameB("a,b,c,d,e", "c,e");
Debug.WriteLine(t);
}
// 删除一组名字
private static string RemoveNameB(string source, string names)
{
List<string> list = new List<string>(source.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries));
List<string> del = new List<string>(names.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries));
list.RemoveAll(x => del.Contains(x));
return string.Join(",", list.ToArray());
}
// 只能删除一个名称
private static string RemoveNameA(string source, string name)
{
return AddDuoHao(source).Replace(AddDuoHao(name), ",").Trim(',');
}
private static string AddDuoHao(string s)
{
return "," + s + ",";
}