9 мин чтения
2026-03-08
(pattern) — группа с захватом (?:pattern) — группа без захвата (не сохраняется) (?<name>pat) — именованная группа
**Пример — парсинг даты:**
(?<day>\d{2})\.(?<month>\d{2})\.(?<year>\d{4})Соответствует «25.12.2026», группы: day=25, month=12, year=2026.
`\1` ссылается на первую группу захвата:
(\w+)\s+\1 — найдёт повторяющееся слово: "the the"
| Синтаксис | Тип | Значение |
|---|---|---|
| `(?=pattern)` | Позитивный lookahead | Следует pattern |
| `(?!pattern)` | Негативный lookahead | Не следует pattern |
| `(?<=pattern)` | Позитивный lookbehind | Предшествует pattern |
| `(?<!pattern)` | Негативный lookbehind | Не предшествует pattern |
**Пример — цена со знаком валюты:**
(?<=\$)\d+\.?\d* — число после знака $
**Email:**
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$**URL:**
https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b**Российский телефон:**
^(\+7|8)[\s-]?\(?[0-9]{3}\)?[\s-]?[0-9]{3}[\s-]?[0-9]{2}[\s-]?[0-9]{2}$**ИНН (10 цифр):**
^\d{10}$**Атомарные группы** `(?>pat)` — предотвращают откат
**Ленивые квантификаторы** `*?`, `+?` — захватывают минимум
**Избегайте `.*`** в середине паттерна — используйте `[^"]+` для ограниченных символов
**Якоря `^` и `$`** — ускоряют матчинг, ограничивая поиск
Тестируйте регулярные выражения в реальном времени в Regex Tester.
Смотрите также: Найти и заменить, Извлечение данных, JSON Formatter
Тестирование регулярных выражений с подсветкой совпадений
Открыть инструмент