Проблема регулярного выражения: метод IsMatch никогда не возвращается - PullRequest
0 голосов
/ 20 августа 2010

У меня есть проблема с регулярным выражением, с которой мне нужна помощь. Попытка подтвердить адрес электронной почты.

Regex rx = new Regex(@"^[A-Za-z0-9]([_\.\-]?[A-Za-z0-9]+)*\@[A-Za-z0-9]([_\.\-]?[A-Za-z0-9]+)*\.[A-Za-z0-9]([_\.\-]?[A-Za-z0-9]+)*$|^$");
rx.IsMatch("john.gilbert.stu.seattle.washington.us"); 

Метод IsMatch никогда не возвращается для этой конкретной строки. Это входит в некоторый бесконечный цикл. Кто-нибудь может увидеть, в чем проблема с шаблоном.

Спасибо!

Ответы [ 3 ]

1 голос
/ 20 августа 2010

(кое-что) * плохо.Смотрите здесь: http://www.regular -expressions.info / catastrophic.html

0 голосов
/ 20 августа 2010

Первый «+» - это проблема, если вы удалите его, он запускается

0 голосов
/ 20 августа 2010

Я бы порекомендовал вам следующее для подтверждения адреса электронной почты:

try
{
    MailAddress addr = new MailAddress("foo@bar.com");
}
catch (FormatException exc)
{
    // The email address is not valid
}

Вот интересное чтение .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...