我有一串不同的邮件例如:“email1@uy.com,email2@iu.it,email3@uu.edu”等我想制定一个Regex,它创建以下输出例如:“email 1、email 2、email 3”等如何在C#中删除“@”和“,”之间的字符,但保留“,”和空格非常感谢你的帮助!!
5vf7fwbs1#
如果你想用空格替换@和逗号之间的所有字符,最简单的选择是使用Regex.Replace:
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"
请注意,它在结果中的逗号后面留下了空格,正如您在问题中所希望的那样,尽管您的示例结果删除了空格。正则表达式查找以“@”字符开头,后跟任何非逗号字符的所有子字符串。这些子字符串被替换为空字符串。
kgsdhlau2#
将所有出现的@[^,]+替换为空字符串即可完成此工作。该表达式匹配以@开头的序列(包括@和@),直到逗号或结尾(不包括@和@)。因此,原始电子邮件字符串中的逗号将被保留。Demo.
@[^,]+
@
wpcxdonn3#
也许你不需要使用正则表达式,在这种情况下,你可以这样做:
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);
3条答案
按热度按时间5vf7fwbs1#
如果你想用空格替换@和逗号之间的所有字符,最简单的选择是使用
Regex.Replace
:请注意,它在结果中的逗号后面留下了空格,正如您在问题中所希望的那样,尽管您的示例结果删除了空格。
正则表达式查找以“@”字符开头,后跟任何非逗号字符的所有子字符串。这些子字符串被替换为空字符串。
kgsdhlau2#
将所有出现的
@[^,]+
替换为空字符串即可完成此工作。该表达式匹配以
@
开头的序列(包括@
和@
),直到逗号或结尾(不包括@
和@
)。因此,原始电子邮件字符串中的逗号将被保留。Demo.
wpcxdonn3#
也许你不需要使用正则表达式,在这种情况下,你可以这样做: