删除不同参数之间的字符
本文关键字:字符 之间 参数 删除 | 更新日期: 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);