0

可能重复:
使用正则表达式验证电子邮件地址
电子邮件验证 - 正则表达式

我正在使用以下代码在 C# 中验证电子邮件地址,但不确定为什么它总是失败:

 var regEx = @"^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})";

        if (Regex.IsMatch(regEx, "abcde@gmail.com", RegexOptions.IgnoreCase))
            return true;
        else
            return false;

请有人指出我在这里缺少什么?

4

2 回答 2

2

尝试这个:

[Test]
public void EmailTest()
{
    var pattern = @"^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})";
    Regex regex = new Regex(pattern, RegexOptions.IgnoreCase);
    var address = "abcde@gmail.com";
    Assert.IsTrue(Regex.IsMatch(address, pattern,RegexOptions.IgnoreCase));
    Assert.IsTrue(regex.IsMatch(address));
}

您的字符串和模式的顺序错误。

还要检查这个线程

于 2012-11-12T11:17:29.263 回答
1

您的IsMatch参数设置错误;第一个是输入,第二个是模式。

于 2012-11-12T11:22:40.597 回答