🧩
← Назад к руководствам

20 распространённых шаблонов регулярных выражений, которые должен знать каждый разработчик

· Теги: common-regex-patterns, regex-examples, useful-regex, email-regex, url-regex, phone-regex

20 распространённых шаблонов регулярных выражений, которые должен знать каждый разработчик

Regex решает реальные задачи: проверка ввода, извлечение данных и преобразование строк. В этом руководстве представлено 20 готовых к использованию регулярных выражений, охватывающих наиболее распространённые задачи обработки текста. Каждый шаблон включает пояснение того, что он сопоставляет.

1. Адрес электронной почты

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

Локальная часть допускает буквы, цифры, точки и специальные символы. Домен допускает буквы, цифры и точки. TLD должен содержать не менее двух букв.

2. URL

https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z]{2,}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)

Соответствует HTTP/HTTPS URL с необязательным www, доменным именем, TLD, путём и строкой запроса.

3. Номер телефона США

^\(?(\d{3})\)?[-.\s]?(\d{3})[-.\s]?(\d{4})$

Соответствует форматам (555) 123-4567, 555-123-4567, 555.123.4567 и 5551234567.

4. Международный номер телефона

^\+?(\d{1,3})\s?[-.\s]?\(?\d{1,4}\)?[-.\s]?\d{1,4}[-.\s]?\d{1,9}$

Универсальный шаблон для международных номеров с кодами стран.

5. Надёжный пароль

^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$

Требуется 8+ символов, одна строчная, одна заглавная, одна цифра, один специальный символ. Использует опережающие проверки (lookahead).

6. Дата (ГГГГ-ММ-ДД)

^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$

Формат ISO 8601. Месяц 01-12, день 01-31. Не проверяет ограничения по месяцам (30 февраля пройдёт).

7. Дата (ММ/ДД/ГГГГ)

^(0[1-9]|1[0-2])\/(0[1-9]|[12]\d|3[01])\/\d{4}$

Американский формат с косой чертой.

8. Время (ЧЧ:ММ, 24-часовой формат)

^([01]\d|2[0-3]):[0-5]\d$

Часы 00-23, минуты 00-59.

9. IPv4-адрес

^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$

Четыре октета. Для строгой проверки (0-255) замените \d{1,3} на (25[0-5]|2[0-4]\d|[01]?\d\d?).

10. IPv6-адрес

^([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$

Полный IPv6 с 8 группами шестнадцатеричных цифр. Не обрабатывает сокращение ::.

11. MAC-адрес

^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$

Разделитель — двоеточие или дефис.

12. Шестнадцатеричный код цвета

^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$

3-значный (#fff) или 6-значный (#ffffff), без учёта регистра.

13. Номер кредитной карты

^\d{4}[\s-]?\d{4}[\s-]?\d{4}[\s-]?\d{4}$

16 цифр с необязательными разделителями. Не проверяет контрольную сумму Луна.

14. Почтовый индекс США (ZIP)

^\d{5}(-\d{4})?$

12345 или 12345-6789.

15. Имя пользователя

^[a-zA-Z0-9_]{3,16}$

3-16 символов, только буквы, цифры и подчёркивание.

16. URL Slug

^[a-z0-9-]+$

Строчные буквы, цифры и дефисы. Распространено в CMS-системах.

17. HTML-тег

<\/?[\w\s]*>|<.+[\w\s]*>

Соответствует открывающим и закрывающим тегам. Не подходит для вложенного HTML.

18. Расширение файла

\.([a-zA-Z]{2,})$

Извлекает расширение без точки.

19. Нормализация пробелов

\s+

Схлопывает несколько пробелов, табуляций или переводов строк в один.

20. Извлечение чисел

-?\d+(\.\d+)?

Целые и десятичные числа, включая отрицательные.

Советы по производительности

  • Будьте конкретны — избегайте .*, который может вызвать катастрофический возврат (catastrophic backtracking).
  • Используйте якоря ^ и $ для ограничения области поиска.
  • Тестируйте крайние случаи: пустые строки, длинные строки, специальные символы.

Тестируйте эти шаблоны онлайн

Используйте инструмент тестера регулярных выражений для экспериментов с этими шаблонами. Вставьте любое выражение, введите образец текста и наблюдайте за выделением совпадений в реальном времени. Тестер показывает группы захвата и помогает отлаживать шаблоны перед использованием.

20 распространённых шаблонов регулярных выражений, которые должен знать каждый разработчик - CoolTool