---
title: Продвинутые регулярные выражения
slug: прочее-регулярные-выражения/продвинутые-регулярные-выражения
---
# 🚀 Продвинутые операторы регулярных выражений

Эти конструкции дают больше контроля над поиском и заменой текста.

---

## 🧱 1. `{n}`, `{n,}`, `{n,m}` — точное количество повторений

- `{n}` — ровно n повторений
- `{n,}` — минимум n повторений
- `{n,m}` — от n до m повторений

**Примеры:**
- `a{3}` — `aaa`
- `a{2,4}` — `aa`, `aaa`, `aaaa`

---

## 🧠 2. `(?...)` — специальные конструкции

### 2.1 `(?:...)` — негруппирующая скобка

- Не сохраняет группу для дальнейшего обращения

**Пример:**
- `(?:abc)+` — совпадает с `abcabc`, но не сохраняет `abc` как отдельную группу

### 2.2 `(?=...)` — позитивная опережающая проверка (lookahead)

- Условие, что **далее по тексту есть шаблон**

**Пример:**
- `\d(?=px)` — цифра перед `px`, например: `5px` → совпадает `5`

### 2.3 `(?!...)` — негативная опережающая проверка

- Условие, что **далее по тексту нет шаблона**

**Пример:**
- `foo(?!bar)` — найдёт `foo`, не за которым идёт `bar`

---

## 🧩 3. `(?<=...)` и `(?<!...)` — lookbehind (опережающее назад)

- `(?<=...)` — **есть шаблон до**
- `(?<!...)` — **нет шаблона до**

**Пример:**
- `(?<=@)\w+` — найдёт слово **после символа `@`** (например, `gmail` в `user@gmail.com`)

---

## 🌀 4. `\b` и `\B` — границы слова

- `\b` — граница слова
- `\B` — НЕ граница слова

**Примеры:**
- `\bword\b` — точное слово `word`
- `\Bword` — `password`, `sword`

---

## 🔂 5. Рекурсивные шаблоны (в некоторых движках)

Некоторые реализации (например, PCRE) поддерживают вложенные структуры:

```regexp
\((?>[^()]+|(?R))*\)
```

Этот шаблон находит корректно вложенные скобки. Используется редко.

---

## 💡 6. Обратные ссылки (Backreferences)

Позволяют ссылаться на уже найденные группы.

**Пример:**
- Шаблон: `(\w+) \1`
- Совпадёт с: `test test`, `hello hello`

---

## 🔄 7. Условные выражения

Поддерживаются не везде, но позволяют задать условия:

```regexp
(?(1)yes|no)
```

Если группа 1 существует, будет `yes`, иначе `no`.

---

## 📘 Полезные ресурсы

- [regex101.com](https://regex101.com/)
- [Regular Expressions Cheat Sheet (MDN)](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions/Cheatsheet)
- [rexegg.com](https://www.rexegg.com/)

