Подскажите регулярку для проверки email

FamilyMan

Client
Регистрация
14.09.2014
Сообщения
32
Благодарностей
1
Баллы
8
Здравствуйте! Кто-нибудь знает рабочую регулярку для проверки корректности email? Использовал данную, но она отрабатывает не совсем верно.
Код:
[\.\-_A-Za-z0-9]+?@[\.\-A-Za-z0-9]+?[\.A-Za-z0-9]{2,}
 

Solus

Client
Регистрация
14.04.2014
Сообщения
377
Благодарностей
119
Баллы
43
В чем заключается не верная отработка?
 

FamilyMan

Client
Регистрация
14.09.2014
Сообщения
32
Благодарностей
1
Баллы
8

Solus

Client
Регистрация
14.04.2014
Сообщения
377
Благодарностей
119
Баллы
43
\S+@\S+\.\S{2}- в том случае если ваши почты имеют только 2 символа после точки (.ru)

либо используйте вашу, но потом доп. обработкой убрать точку: \.(?=(\s|$))

Но в любом случае, для создания более точной регулярки нужно исходить из материала(контента), с которого нужно извлечь почтовики.
 
  • Спасибо
Реакции: FamilyMan

FamilyMan

Client
Регистрация
14.09.2014
Сообщения
32
Благодарностей
1
Баллы
8
\S+@\S+\.\S{2}- в том случае если ваши почты имеют только 2 символа после точки (.ru)

либо используйте вашу, но потом доп. обработкой убрать точку: \.(?=(\s|$))

Но в любом случае, для создания более точной регулярки нужно исходить из материала(контента), с которого нужно извлечь почтовики.
Вот еще например: регулярка пропускает такие сочетания user.options@0aplg68, [email protected]. Не подскажите, как сделать так, чтобы точка обязательно ставилась где-то после @, а также исключить любые символы кроме букв и цифр?
 

FamilyMan

Client
Регистрация
14.09.2014
Сообщения
32
Благодарностей
1
Баллы
8
С буквами разобрался, а вот с точкой после @ требуется помощь
 

Solus

Client
Регистрация
14.04.2014
Сообщения
377
Благодарностей
119
Баллы
43
Не вижу точки после @ в примерах или я чего то не понял. Приведите ряд примеров, или лучше кусок контента из которого парсите почту.
 

FamilyMan

Client
Регистрация
14.09.2014
Сообщения
32
Благодарностей
1
Баллы
8
Не вижу точки после @ в примерах или я чего то не понял. Приведите ряд примеров, или лучше кусок контента из которого парсите почту.
Дело в том, что я заходу каждый раз на абсолютно рандомные сайты, они все разные, и мне нужно по регулярке взять первое попавшееся совпадение. Пример таков:
user.options@0aplg68 - это тоже парсится по данной регулярке, хотя по логике после @ отсутсвует точка, а нужно чтобы была обязательно. Как например mail@mail . com .
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 100
Баллы
113
Код:
[A-Za-z0-9_\.\-]+@[A-Za-z0-9\.\-]+\.[A-Za-z0-9]{2,}
 

Lord_Alfred

Client
Регистрация
09.10.2015
Сообщения
3 916
Благодарностей
3 856
Баллы
113
http://stackoverflow.com/a/5342460/1574977

Не тестил, но что-то мне подсказывает, что всё будет хорошо, т.к. это внутри .net)

PS: хотя, конечно, это не поможет парсить адреса, но зато как валидатор - сгодится
 
  • Спасибо
Реакции: FamilyMan

FamilyMan

Client
Регистрация
14.09.2014
Сообщения
32
Благодарностей
1
Баллы
8
http://stackoverflow.com/a/5342460/1574977

Не тестил, но что-то мне подсказывает, что всё будет хорошо, т.к. это внутри .net)

PS: хотя, конечно, это не поможет парсить адреса, но зато как валидатор - сгодится
Годно. Только я использовал регулярку из первого примера, убрал знаки "-" и вроде парсит как нужно. Решил обойтись без кода, так как C# только изучаю)
Код:
^([\w\.]+)@([\w]+)((\.(\w){2,4})+)$
 

Lord_Alfred

Client
Регистрация
09.10.2015
Сообщения
3 916
Благодарностей
3 856
Баллы
113

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 100
Баллы
113

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)