删除不同参数之间的字符

本文关键字:字符 之间 参数 删除 | 更新日期: 2023-09-27 17:59:53

我有一系列不同的电子邮件

例如:"email1@uy.com,email2@iu.it,email3@uu.edu"etc,etc

我想制定一个Regex,创建以下输出

例如:"email1、email2、email3"等

如何删除"@"answers","之间的字符,但在C#中保留","和空格

非常感谢你的帮助!!

删除不同参数之间的字符

如果您想用空格替换@和逗号之间的所有字符,最简单的选择是使用Regex.Replace:

var emails = "a@m.com, b@m.com, d@m.com";
var result = Regex.Replace(emails, "@[^,]+", string.Empty);
// result is "a, b, d"

请注意,它在结果中的逗号后留下空格,正如您在问题中所希望的那样,尽管您的示例结果中删除了空格。

正则表达式查找所有以"@"字符开头、后跟任何非逗号字符的子字符串。这些子字符串将替换为空字符串。

用空字符串替换所有出现的@[^,]+即可。

该表达式匹配以@开头(包含)、直到逗号或结尾(不包含)的序列。因此,原始电子邮件字符串中的逗号将被保留。

演示。

也许您不需要使用正则表达式,在这种情况下,您可以执行以下操作:

string input = "email1@uy.com, email2@iu.it, email3@uu.edu";
 input = input.Replace(" ", "");
 string[] ocurrences = input.Split(',');
 for (int i = 0; i < ocurrences.Length; i++)
 {
     string s = ocurrences[i];
     ocurrences[i] = s.Substring(0, s.IndexOf('@'));
 }
 string final = string.Join(", ", occurences);