Шпаргалка по регулярным выражениям

Что такое регулярные выражения?

Регулярные выражения (регексы, regex) — это мощный инструмент для поиска, проверки и извлечения текста по шаблону. Используются в программировании, редакторах (Notepad++, VS Code), CMD, PowerShell, Python, JavaScript и др.

Базовые метасимволы

  • . — любой символ, кроме новой строки.

  • ^ — начало строки.

  • $ — конец строки.

  • \d — цифра (0–9).

  • \w — буква, цифра или подчёркивание (a–z, A–Z, 0–9, _).

  • \s — пробел, табуляция, перевод строки.

  • \b — граница слова (между \w и \W).

  • [abc] — один из символов в скобках.

  • [^abc] — любой символ, кроме указанных.

  • [a-z] — диапазон символов (например, все строчные буквы).

Квантификаторы

  • * — 0 или более повторений.

  • + — 1 или более повторений.

  • ? — 0 или 1 повторение (необязательный элемент).

  • {n} — ровно n раз.

  • {n,}n или более раз.

  • {n,m} — от n до m раз.

Группировка и логика

  • (...) — группировка (захватывает часть для извлечения).

  • (?:...) — не захватывающая группа (только для логики).

  • X|Y — либо X, либо Y.

  • \1, \2 — обратная ссылка на первую, вторую группу.

Экранирование спецсимволов

Если нужно найти символ как есть — экранируйте его:

  • \. — точка как символ (не любой символ).

  • \+ — знак плюс.

  • \(, \) — скобки.

  • \\ — обратный слеш.

Примеры полезных шаблонов

📧 Email

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

Простая проверка email: user@example.com

📞 Номер телефона (международный)

^\+?[1-9]\d{1,14}$

Например: +79991234567

🌐 URL (упрощённо)

https?://[^\s/$.?#].[^\s]*

Находит http:// и https:// ссылки.

📅 Дата в формате ГГГГ-ММ-ДД

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

Проверяет корректность формата даты.

💳 Номер карты (просто 16 цифр)

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

Подходит для 1234-5678-9012-3456 или без разделителей.

Флаги (модификаторы)

  • i — игнорировать регистр.

  • g — глобальный поиск (все совпадения).

  • m — многострочный режим (^ и $ работают по строкам).

  • s — точка включает символ новой строки.

Примеры использования

JavaScript

const re = /\d+/g;
const str = "Цена: 100, Скидка: 25";
const matches = str.match(re); // ['100', '25']

Python

import re
text = "Email: user@example.com"
match = re.search(r'\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b', text)
if match:
    print("Найден email:", match.group())

PowerShell

$text = "Телефон: +79991234567"
if ($text -match '\+\d{11}') {
    Write-Host "Найден номер: $($matches[0])"
}

Полезные советы

  • Тестируйте регулярки на regex101.com — там есть пояснения и подсветка.
  • Не пытайтесь написать идеальный парсер email — используйте библиотеки.
  • Избегайте чрезмерной сложности — регексы должны быть читаемыми.
  • Используйте ?: в группах, если не нужна их подстановка.

Совет: Сохраните эту страницу в закладки — пригодится при работе с логами, формами, парсингом и автоматизацией.

Скопировано:
Назад к разделу: Записи