正则表达式不匹配

时间:2012-11-12 11:14:06

标签: c# regex validation email-validation

  

可能重复:
  Using a regular expression to validate an email address
  Email Validation - Regular Expression

我正在使用以下代码来验证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;

请有人指出我在这里缺少的东西吗?

2 个答案:

答案 0 :(得分: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));
}

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

同时检查此thread

答案 1 :(得分:1)

你的IsMatch parameters错误的方式;第一个是输入,第二个是模式。