Skip to main content
 首页 » 编程设计

c#之如何使正则表达式适用于角落案例电子邮件地址

2024年01月13日58lyhabc

<分区>

Possible Duplicates:
Email Validation - Regular Expression
What is the best regular expression for validating email addresses?

大家好,

我有一个大致这样的电子邮件地址,

名字.姓氏@4domain.co.nz

这不适用于我在此处用于电子邮件地址的正则表达式。它似乎不喜欢域开头的 4。

private const string MatchEmailPattern = 
        @"^(([\w-]+\.)+[\w-]+|([a-zA-Z]{1}|[\w-]{2,}))@" + 
        @"((([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\.([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\." + 
        @"([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\.([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])){1}|" + 
        @"([a-zA-Z]+[\w-]+\.)+[a-zA-Z]{2,4})$"; 

大多数其他极端情况都适用于此正则表达式,以下所有情况均被拒绝,

        Assert.IsFalse(EmailValidator.IsValidEmailAddress("..@test.com")); 
        Assert.IsFalse(EmailValidator.IsValidEmailAddress(".a@test.com")); 
        Assert.IsFalse(EmailValidator.IsValidEmailAddress(".@s.dd")); 
        Assert.IsFalse(EmailValidator.IsValidEmailAddress("ab@988.120.150.10")); 
        Assert.IsFalse(EmailValidator.IsValidEmailAddress("ab@120.256.256.120")); 
        Assert.IsFalse(EmailValidator.IsValidEmailAddress("2@bde.cc")); 
        Assert.IsFalse(EmailValidator.IsValidEmailAddress("-@bde.cc")); 
        Assert.IsFalse(EmailValidator.IsValidEmailAddress("..@bde.cc")); 
        Assert.IsFalse(EmailValidator.IsValidEmailAddress("_@bde.cc")); 

人们可以建议任何其他正则表达式用于与上述内容一起使用的电子邮件吗?

此外,上述正则表达式的优点是它适用于这样的地址,但其中很多都不能,

名字.姓氏_@gmail.com