ИНСТР-REGEX-EMAILRFC 5322Frontend / Backendревизия 2026-05-07

Regex для email

Готовые регулярные выражения для проверки email-адресов. От простого до RFC 5322. Тестировщик с примерами валидных адресов.

⏱ работает в браузере · без регистрации
Инструмент · ИНСТР-REGEX-EMAIL|real-time
calcal.ru / regex-email-validator-online
Загрузка...
3
Уровня regex
254
Макс. длина email
99%
Покрытие простой
0
Запросов к серверу

Готовые шаблоны

Email-валидация — первое что нужно при работе с формами регистрации. Идеального регекса не существует (RFC 5322 — 6300 символов и всё равно не покрывает всё), но есть три уровня практичных шаблонов.

Уровень 1 — простейший (для прототипа)

.+@.+\..+

«Что-то, @, что-то, точка, что-то». Покрывает 95% реальных email. Не валидирует строго, но ловит опечатки типа отсутствующего @ или точки. Идеально для первого MVP.

Уровень 2 — продвинутый (рекомендуем)

^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$

Покрывает 99% реальных email:

  • [a-zA-Z0-9._%+-]+ — локальная часть: буквы, цифры, точка, нижнее подчёркивание, процент, плюс, дефис.
  • @ — обязательный.
  • [a-zA-Z0-9.-]+ — домен: буквы, цифры, точки, дефисы.
  • \\.[a-zA-Z]{2,} — TLD: точка + минимум 2 буквы.

Уровень 3 — RFC 5322 (если очень нужно)

Полная regex для RFC 5322 занимает 6300 символов. Поддерживает странные кейсы вроде "user.name+tag"@example.com или user@[192.168.1.1]. Если вам ДЕЙСТВИТЕЛЬНО нужно — используйте email-validator (Python), validator.js (JavaScript), Apache Commons Validator (Java).

A valid email address is a string that matches the email production of the following ABNF... В отличие от RFC 5322, HTML5 спецификация определяет более простую и практичную регулярку: ^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$HTML5 Specification, W3C

Простой regex — детально

Разберём по частям шаблон ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$:

  • ^ — начало строки. Без этого matches могут быть в середине текста.
  • [a-zA-Z0-9._%+-]+ — один или больше из перечисленных символов. Это local part (до @).
  • @ — литерал «собака».
  • [a-zA-Z0-9.-]+ — domain name (до точки TLD).
  • \\. — экранированная точка (без \\ это «любой символ»).
  • [a-zA-Z]{2,} — TLD: 2 или больше букв.
  • $ — конец строки. Защита от добавления символов после.

Примеры валидных email

  • simple@example.com
  • very.common@example.com
  • disposable.style.email.with+symbol@example.com
  • other.email-with-hyphen@example.com
  • fully-qualified-domain@example.com
  • user.name+tag+sorting@example.com
  • x@example.com
  • example-indeed@strange-example.com
  • example@s.example

Примеры невалидных

  • plainaddress (без @)
  • #@%^%#$@#$@#.com (странные символы)
  • @example.com (нет local part)
  • email@example (нет TLD)
  • email@example.com (всё ОК)
  • email@-example.com (домен начинается с -)
  • email@example..com (двойная точка)

Подводные камни

  • Не валидирует существование. Regex проверяет только формат. user@example.com может быть валидным форматом, но домен example.com может не существовать. Реальная валидация — отправить письмо.
  • Performance. Использование .* и .+ в неправильных местах даёт catastrophic backtracking — regex может работать секунды на длинных строках. Используйте [^@]+ вместо .*.
  • Кириллические email. RFC 6530 разрешает иван@почта.рф, но 60% SMTP-серверов не поддерживают. На практике конвертируйте в Punycode перед отправкой.
  • Plus-addresses. Gmail-стандарт: user+tag@gmail.com доставляется на user@gmail.com. Многие сайты ОТКЛОНЯЮТ + как невалидный — это баг, не фича.
  • Локальная часть с точкой. first.last@example.com — валидно. first..last (двойная точка) — невалидно.
  • Длина. RFC 5321 максимум: local part 64 символа, domain 255 символов, общий 254 символа. Большинство regex не учитывают.
  • Comments. RFC 5322 разрешает (комментарий)user@example.com. Никто не использует. Игнорируйте.
ИСТОЧНИКИ
  1. RFC 5322 — Internet Message Format. IETF. datatracker.ietf.org/doc/html/rfc5322. 2008.
  2. HTML5 — Email type spec. WHATWG. html.spec.whatwg.org/multipage/input.html#valid-e-mail-address. 2024.
  3. I Knew How To Validate An Email Address Until I Read The RFC. David Celis. davidcel.is. 2014.
ЧАСТЫЕ ВОПРОСЫ

Часто задаваемые вопросы

Для большинства случаев: <code>^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$</code>. Это простой и достаточный паттерн: один или больше символов до @, домен, точка, минимум 2 символа TLD. Покрывает 99% реальных email. Не пытайтесь покрыть 100% — официальная RFC 5322 регулярка занимает 6000 символов и всё равно не идеальна.
RFC 5322 — официальный стандарт формата email. Согласно ему валидны очень странные адреса: <code>"user.name+tag"@example.com</code>, <code>user@[192.168.1.1]</code>, даже <code>" "@example.com</code> (пробелы в кавычках!). Полная regex для RFC 5322 — печально известный 6300-символьный монстр. На практике никто его не использует.
Простой regex (<code>.+@.+\..+</code>) для базовой проверки, чтобы предупредить опечатки. Не блокировать пользователя. После — отправить письмо с подтверждением: только так можно доказать, что email реально существует. Любая regex-валидация это «формат правильный», но не «email рабочий». Используйте подтверждение (double opt-in).
(1) Использование .* (жадно) — медленно. Используйте [^@]+ для специфики. (2) Не учитывают плюс (+): <code>user+tag@gmail.com</code> — Gmail-стандарт. (3) Не учитывают точки в локальной части: <code>first.last@example.com</code>. (4) Жёстко зашитые TLD типа \.(com|ru|org) — каждый год добавляются новые TLD. (5) Не поддержка кириллических доменов (.рф, .москва) — для них Punycode (.xn--p1ai). (6) Длина — не учитывают максимум 254 символа.
Технически такие email существуют (RFC 6530, EAI — Email Address Internationalization), но плохо поддерживаются: 60% SMTP-серверов их отклоняют. На практике почти все системы конвертируют локальную часть в Punycode (xn--...) и работают с ASCII. Если вы делаете форму для России — поддержите оба варианта: латинский email и кириллический (с конверсией в Punycode при отправке).
Для поиска email в свободном тексте: <code>\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}\b</code>. Используйте \b (word boundary) чтобы не захватить лишние символы. Полезно для парсинга писем, документов, веб-страниц. ВНИМАНИЕ: парсинг email с публичных сайтов часто противозаконен (CAN-SPAM Act в США, GDPR в Европе, 152-ФЗ в России). Используйте только на собственных данных.
Да, для проверки и валидации. Загрузите CSV в Excel → выделите столбец → найти-заменить regex (включить «Использовать regex»). Однако массовая отправка email на эти адреса требует согласия пользователей (152-ФЗ в РФ). Если делаете email-маркетинг — используйте только адреса с opt-in (пользователь сам подписался). Покупка email-баз = нарушение закона.
Лиана Арифметова
АВТОРverifiedред. calcal.ru

Лиана Арифметова

Создатель и главный редактор

Миссия: демократизировать сложные расчёты. Превратить страх перед числами в ясность и контроль. Девиз: «Любая повторяющаяся задача заслуживает своего калькулятора».

Mathematical Engineering · МФТИ · редактирует каталог с 2012 года

Был ли этот калькулятор полезен?

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ

Инструмент справочный — не заменяет эксперта

Только для информационных целей. Все расчёты, результаты и данные, предоставляемые инструментом, носят исключительно ознакомительный и справочный характер. Они не являются профессиональной консультацией — медицинской, юридической, финансовой, инженерной или иной.

Точность результатов. Калькулятор основан на общепринятых формулах и методиках, однако фактические результаты могут отличаться в зависимости от индивидуальных условий, исходных данных и применяемых стандартов. Мы не гарантируем полноту, точность или актуальность приведённых расчётов.

Профессиональные решения — медицинские, финансовые, инженерные — должны приниматься только после консультации с квалифицированным специалистом. Не используйте автоматический расчёт как единственное основание для важных решений.

Ограничение ответственности. Авторы и разработчики сервиса не несут ответственности за прямой или косвенный ущерб, возникший из-за использования данных расчётов. Пользователь принимает на себя всю ответственность за интерпретацию результатов.