C# 给定场景的正则表达式

C# 给定场景的正则表达式,c#,regex,email-validation,C#,Regex,Email Validation,我已经有一个来自RFC 2822格式的电子邮件地址正则表达式 [a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])? 但要修改它以包括以下一些新条件: 至少有一个句号 至少有一个@字符 没有连续的句号 不得以特殊字符开头/结尾,即只能以[0-9a-zA-Z]开头/结尾

我已经有一个来自RFC 2822格式的电子邮件地址正则表达式

[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?
但要修改它以包括以下一些新条件:

至少有一个句号 至少有一个@字符 没有连续的句号 不得以特殊字符开头/结尾,即只能以[0-9a-zA-Z]开头/结尾 仍应遵循正则表达式规则的RFC规范。 目前,上面的一个允许电子邮件以特殊字符开头。此外,它允许两个连续的句号除了域名是罚款,所以test@test..com失败及其正确性

谢谢。

^[a-zA-Z0-9]+?:\.?[\w!$%&'*+/=?^`{124;}-]+*@[a-zA-Z0-9]?:\.?[\w\-]+\.[a-zA-Z0-9]+$ 不。。至少有一个。一,。 也以字母/数字开头/结尾

添加^start和$end只是为了匹配整个字符串,而不仅仅是子字符串。但是您可以用单词边界\b替换它们

非硬编码特殊字符的替代方案:

^(?!.*[.]{2})[a-zA-Z0-9][^@\s]*?@[a-zA-Z0-9][^@\s]*?\.[A-Za-z0-9]+$

很高兴告诉我们你想做什么,如果你有问题,也许回来告诉我们什么不适合你?我建议从合适的正则表达式开始,正如@KeithNicholas指出的,你需要的不仅仅是帖子中的需求列表。我不认为你可以用一个正则表达式来完成所有这些,你没有问任何问题。你已经做了陈述。这是一个问答网站,这意味着应该有一个明确的,具体的问题。你没有这样做,也没有任何迹象表明你做了什么,你甚至没有在问题中说你做了什么,也没有解释那次努力是如何失败的。所有这些都解释了我最后的评论。如果您还有什么不清楚的地方,请告诉我。您应该看看