2014-01-17 5 views
-1

([a-zA-Z0-9 \.] +) \ S * (?: at | @ | (at)) \ s * (\ w +) \ s * (?: делать т |?. \) \ S * (\ W +) (\ S * (?: делать т |? \.) \ S * (\ W +))?RegEx в Java для сопоставления электронной почты

Я написал вышеуказанный RegEx для получения адресов электронной почты.

Это успешно поднимает боб на GMAIL точки приходят

Однако это не подобрать, боб на гм ком точка Gmail точка (визуализации следующих электронной почты существовали [email protected])

Кроме того, он также генерирует ложные срабатывания, если слово «at» находится в тексте. Например, строка «run at runtime. It» вернется в качестве адреса электронной почты [email protected]

Любые предложения о том, как записать второй вариант электронной почты и избежать захвата [email protected]?

+4

Зачем изобретать колесо? Используйте 'EmailValidator.getInstance(). IsValid (emailAddr)' из apache commons. http://commons.apache.org/proper/commons-validator/apidocs/org/apache/commons/validator/routines/EmailValidator.html#isValid(java.lang.String) – user2336315

+0

@ user2336315 - спасибо. но, также хорошо попробовать это самостоятельно. или см. исходный код apache. – Steam

+0

также рассмотрим связанные вопросы справа – kmera

ответ

0

см here

возможно попробовать выражение ->^[A-z0-9 ._% + -] + @ [A-Z0-9 .-] + (:.? [AZ] {2} | ком | орг | чистые | образование | г | млн | бизнес | информация | моби | имя | аэро | азия | работа | музей) $

0

Есть два варианта сделать это:

  1. Не надо. Существует много причин, по которым это может потерпеть неудачу. Лучший способ узнать, является ли он действительным адресом электронной почты, фактически отправляет электронное письмо. Или вы знали, что действительный адрес [email protected]? Есть еще много примеров. See here
  2. Не делать это самостоятельно, повторно использовать существующую библиотеку как Apache Commons или что-то
+0

Хотя я согласен с вашими точками, OP, вероятно, пытается подобрать адреса электронной почты, чьи @ и. заменены на «at» и «dot». – nhahtdh

Смежные вопросы