# Регулярные выражения в фильтрах и заменах

Language: ru
Canonical: <https://flowin.click/prochee/regulyarnye-vyrazheniya>
Published: 2024-08-19T10:34:27+01:00
Modified: 2026-10-19T06:36:03+01:00

Регулярное выражение описывает, какой текст нужно найти. Вместо одной точной фразы вы задаёте шаблон: например, слово «Заявка» и любой номер после него. Номер может меняться в каждом сообщении, а шаблон всё равно найдёт нужный фрагмент.

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

![Поиск совпадающих фрагментов текста по шаблону](<https://flowin.click/wp-content/uploads/2026/10/cf-da8cc01b43e113428f944f35.webp>)

Содержание статьи

- [Возможности регулярных выражений](<https://flowin.click/prochee/regulyarnye-vyrazheniya#headline-6-324>)
- [Как читать регулярное выражение](<https://flowin.click/prochee/regulyarnye-vyrazheniya#reading-pattern>)
- [Синтаксис регулярок](<https://flowin.click/prochee/regulyarnye-vyrazheniya#headline-11-324>)
- [Настройки поиска в FLOWIN](<https://flowin.click/prochee/regulyarnye-vyrazheniya#flowin-flags>)
- [Готовые шаблоны](<https://flowin.click/prochee/regulyarnye-vyrazheniya#headline-45-640>)
- [Частые вопросы](<https://flowin.click/prochee/regulyarnye-vyrazheniya#faq>)

## Возможности регулярных выражений

Поддержка регулярных выражений в фильтрах и заменах FLOWIN позволяет:

- Добавлять в начало или в конец сообщений любой текст.
- Фильтровать сообщения со ссылками.
- Удалять ссылки, телефоны, почту и прочую контактную информацию из копируемых сообщений.
- Фильтровать длинные сообщения или, наоборот, только короткие.

Режим «Regexp»

В настройках фильтра или замены режим «Regexp» рядом с полем «Искать» включает поиск по регулярному выражению. Сам шаблон задаётся в этом поле. Создание правила и его применение к пересылке описаны в инструкциях по [фильтрам](<https://flowin.click/dokumentaciya/filtraciya-peresylaemyh-soobshchenii>) и [заменам](<https://flowin.click/dokumentaciya/zameny-v-peresylaemyh-soobshcheniyah>).

[![Режим Regexp рядом с полем Искать в настройках замены](<https://flowin.click/wp-content/uploads/2026/10/cf-df5203953b13b8861bf4aa8f.webp>)](<https://flowin.click/wp-content/uploads/2026/10/cf-df5203953b13b8861bf4aa8f.webp>)

«Regexp» в настройках замены.

## Как читать регулярное выражение

Начнём с шаблона ` Заявка №\d+ `. Он находит и ` Заявка №125 `, и ` Заявка №8072 `, хотя номера разные. Прочитаем его слева направо:

- ` Заявка № ` ищет именно эти буквы, пробел и знак номера.
- ` \d ` обозначает любую цифру от 0 до 9.
- ` + ` требует одну или несколько таких цифр подряд.

Найденный фрагмент называют совпадением. В сообщении ` Заявка №125 принята ` совпадением будет ` Заявка №125 `, а слово ` принята ` останется за его пределами. В фильтре совпадение помогает определить, подходит ли сообщение под условие; в замене оно указывает, какой фрагмент изменить.

Обычные буквы и пробелы в шаблоне ищутся как написаны. Специальные символы задают правила. Ниже разобраны основные обозначения, а затем собраны готовые примеры для разных задач.

## Синтаксис регулярок

Чтобы начать использовать регулярные выражения, нужно знать синтаксис, то есть понимать, что обозначают определённые символы.

### Основные символы

- ` ^ ` обозначает начало текста.
- ` $ ` обозначает конец текста.
- ` . ` соответствует любому символу, включая перенос строки.
- ` \d ` соответствует цифре от 0 до 9.
- ` \w ` соответствует латинской букве, цифре или знаку подчёркивания.
- ` \n ` обозначает перенос строки.
- ` \t ` обозначает табуляцию.
- ` \s ` соответствует обычному пробелу, табуляции, переносу строки, возврату каретки или переводу страницы.
- ` \b ` проверяет границу слова, например между буквой и пробелом. Сам символ в совпадение не добавляет.

### Количественные символы

Количественные символы указывают, сколько раз повторяется символ или группа перед ними. Группа объединяет несколько символов в круглых скобках.

- ` * ` означает 0 и более раз.
- ` + ` означает 1 и более раз.
- ` ? ` означает 0 или 1 раз.
- ` {5} ` означает ровно 5 раз.
- ` {1,5} ` означает от 1 до 5 раз.
- ` {1,} ` означает 1 и более раз.
- ` {0,5} ` означает от 0 до 5 раз.

Например:

- ` a+ ` соответствует ` a `, ` aa `, ` aaa ` и так далее.
- ` .* ` соответствует любому тексту, даже пустому.
- ` аб{3} ` соответствует ` аббб `.

### Группы

Круглые скобки ` ( ) ` объединяют символы в группу. Группы чаще всего используют с [количественными символами](<https://flowin.click/prochee/regulyarnye-vyrazheniya#quantifiers>) или с вертикальной чертой ` | `, которая обозначает логическое ИЛИ.

Например:

- ` ((Bob)|(Alice)) ` соответствует как ` Bob `, так и ` Alice `.
- ` (abc){3} ` соответствует ` abcabcabc `.

### Набор символов

Для указания набора символов используются квадратные скобки ` [ ] `. Внутри них символы можно перечислить так:

- ` [а-яё] ` соответствует любой букве русского алфавита.
- ` [абвгд] ` или ` [а-д] ` соответствует одной из букв ` а `, ` б `, ` в `, ` г ` или ` д `.
- ` [a-z] ` соответствует любой букве латиницы от ` a ` до ` z `.
- ` [0-5] ` соответствует любой цифре от 0 до 5.

Символ ` ^ ` в начале набора обозначает логическое НЕ:

- ` [^а-яё] ` соответствует любому символу, кроме буквы русского алфавита.
- ` [^a-z] ` соответствует любому символу, кроме буквы латиницы от ` a ` до ` z `.
- ` [^\s] ` соответствует любому символу, который не входит в ` \s `.

В FLOWIN ` \w ` не включает кириллицу. ` [а-яё] ` охватывает русский алфавит, включая ` ё `. В диапазон ` [а-я] ` эта буква не входит.

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

Если служебный символ нужен как обычный текст, а не как часть синтаксиса, перед ним ставится обратный слеш ` \ `. Это называется экранированием.

Например:

- ` :\) ` соответствует ` :) `. Скобка здесь обозначает обычную скобку, а не группу.
- ` кто\? ` соответствует ` кто? `. Знак вопроса здесь не задаёт количество повторений.

## Настройки поиска в FLOWIN

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

Флаги уже настроены

В фильтрах и заменах включены ` IgnoreCase (i) `, ` Singleline (s) `, ` RE2 ` и ` Unicode `. Добавлять их вручную к каждому шаблону не нужно. Вот что важно на практике:

- ` i ` отключает различие регистра: ` кот ` найдёт и ` Кот `, и ` КОТ `.
- ` s ` разрешает точке ` . ` находить перенос строки. Поэтому ` .* ` может захватить несколько строк сразу.
- Многострочный режим ` Multiline (m) ` по умолчанию выключен: ` ^ ` и ` $ ` относятся к началу и концу всего сообщения, а не каждой строки.
- ` RE2 ` задаёт особенности синтаксиса: ` \d ` ищет цифры 0–9, а ` \w ` только латинские буквы, цифры и подчёркивание. Включённый ` Unicode ` не добавляет кириллицу в ` \w `.

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

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

Выберите задачу и скопируйте шаблон в поле «Искать» с режимом «Regexp». В примерах показан именно найденный текст. Что затем произойдёт с сообщением, зависит от настроенного фильтра или замены.

### Номер заявки, который каждый раз меняется

Найти заявку, не зная её номера заранее.

Шаблон:  
` Заявка №\d+ `

Текст: ` Заявка №125 принята. Заявка №8072 ожидает ответа. `

Найдёт: ` Заявка №125 `, ` Заявка №8072 `.

Текст «Заявка №» остаётся постоянным, а ` \d+ ` находит одну или несколько цифр подряд. Пробел перед № тоже входит в шаблон. «Заявка №ABC» не подойдёт.

### Сообщение только из шести цифр

Отобрать сообщения, в которых находится ровно шестизначный код.

Шаблон:  
` ^\d{6}$ `

Текст: ` 482901 `

Найдёт: ` 482901 `.

Начало и конец ограничивают всё сообщение, а ` {6} ` задаёт шесть цифр. «Код: 482901», «48290» и «482901 » с пробелом в конце не подойдут.

### Один из нескольких вариантов текста

Найти сообщения с упоминанием одного из двух статусов.

Шаблон:  
` готово|отменено `

Текст: ` Готово: файл отправлен. Другое задание отменено. `

Найдёт: ` Готово `, ` отменено `.

Вертикальная черта означает «или». Регистр букв не важен. Без границ слова шаблон найдёт «готово» и внутри слова «готового».

### Слово целиком, без совпадений внутри других слов

Найти слово «кот», пропуская «котёнок» и «скот».

Шаблон:  
` \bкот\b `

Текст: ` Кот, котёнок и скот. `

Найдёт: ` Кот `.

` \b ` по обе стороны проверяет границы слова. Пробелы и пунктуация могут отделять слово от соседнего текста; сами они в совпадение не входят.

### Дата в формате день.месяц.год

Найти дату, у которой день и месяц записаны двумя цифрами, а год четырьмя.

Шаблон:  
` \d{2}\.\d{2}\.\d{4} `

Текст: ` Встреча 16.10.2026 в 12:00. `

Найдёт: ` 16.10.2026 `.

` \. ` обозначает обычную точку, а не любой символ. Шаблон проверяет форму записи, но не календарь: «99.99.2026» тоже совпадёт.

### Хештеги на русском и английском

Найти хештеги из букв, цифр и знаков подчёркивания.

Шаблон:  
` #[а-яёa-z0-9_]+ `

Текст: ` #Новости #release_2 #всё_готово `

Найдёт: ` #Новости `, ` #release_2 `, ` #всё_готово `.

После \# идёт один или несколько символов из набора. Пробел или дефис завершит совпадение: в «\#план-дня» будет найдено только «\#план».

### Упоминания вида @username

Найти текст, похожий на упоминание пользователя или канала.

Шаблон:  
` @[a-z0-9_]{3,} `

Текст: ` Автор: @news_room. Ещё один: @ab. `

Найдёт: ` @news_room `.

После @ нужны хотя бы три буквы латиницы, цифры или знака подчёркивания. Шаблон ищет форму записи, а не проверяет существование пользователя. Он также может найти часть адреса электронной почты.

### Ссылки с http:// или https://

Найти явно записанный веб-адрес с протоколом.

Шаблон:  
` https?:\/\/[^\s]+ `

Текст: ` Откройте https://example.org/page и http://example.org `

Найдёт: ` https://example.org/page `, ` http://example.org `.

Буква s необязательна. После // шаблон забирает символы до ближайшего пробела или другого разделителя из ` \s `. Адрес без протокола не подойдёт, а запятая или точка вплотную к адресу могут попасть в совпадение.

### Телефон в записи +7 и десять цифр

Найти номер, записанный слитно, без скобок, пробелов и дефисов.

Шаблон:  
` \+7\d{10} `

Текст: ` Контакт: +79991234567 `

Найдёт: ` +79991234567 `.

` \+ ` ищет обычный плюс, а ` \d{10} ` задаёт ровно десять следующих за 7 цифр. Вариант «+7 (999) 123-45-67» не совпадёт. Это поиск по форме записи, не проверка существования номера; внутри более длинной цепочки цифр тоже возможно совпадение.

### Сообщения, которые начинаются с нужной пометки

Найти пометку «Важно:» только в самом начале сообщения.

Шаблон:  
` ^Важно: `

Текст: ` ВАЖНО: встреча перенесена. `

Найдёт: ` ВАЖНО: `.

^ проверяет начало всего текста. В «Обновление: Важно: встреча перенесена» совпадения не будет. Пометка в начале второй строки тоже не подойдёт, поскольку многострочный режим по умолчанию выключен.

### Лишние пробелы между словами

Найти два или больше обычных пробела подряд, чтобы затем заменить их одним.

Шаблон:  
` [ ]{2,} `

В тексте ` Текст··с···пробелами ` будут найдены две группы: два и три пробела. Знак ` · ` здесь только показывает обычный пробел; вводить его не нужно.

Внутри квадратных скобок стоит обычный пробел, а ` {2,} ` требует хотя бы два подряд. Чтобы убрать лишние пробелы, найденные фрагменты заменяют одним пробелом. Переносы строк такой шаблон не затрагивает.

### Короткие сообщения до ста символов

Отобрать непустые сообщения длиной от 1 до 100 символов.

Шаблон:  
` ^.{1,100}$ `

Текст: ` Короткое сообщение `

Найдёт: ` Короткое сообщение `.

Точка считает любые символы, в том числе пробелы и переносы строк. Скобки задают пределы, а ^ и $ требуют проверить сообщение целиком. Пустое сообщение и текст длиннее 100 символов не подойдут. Составной эмодзи может считаться несколькими символами.

Список будет пополняться. Предложения новых шаблонов можно отправить в поддержку [@value\_maker](<https://t.me/value_maker>).

Проверка своего шаблона

На [regex101.com](<https://regex101.com/>) удобно проверять собственные регулярные выражения. Настройки поиска там могут отличаться от FLOWIN, поэтому перед применением к рабочей пересылке нужна проверка на тестовых сообщениях: с ожидаемым совпадением и без него.

## Частые вопросы

 

**Когда достаточно «Текст» или «Список», а когда нужен «Regexp»?**

Режим «Текст» подходит для одной известной фразы, а «Список» позволяет перечислить несколько вариантов. «Regexp» нужен, когда текст меняется по правилу: например, после слова «Заявка» каждый раз стоит новый номер. Он также помогает задать границы слова или количество символов. Действие с найденным сообщением настраивается отдельно в [фильтре](<https://flowin.click/dokumentaciya/filtraciya-peresylaemyh-soobshchenii>) или [замене](<https://flowin.click/dokumentaciya/zameny-v-peresylaemyh-soobshcheniyah>).

 

**Почему выражение из онлайн-тестера работает в FLOWIN иначе?**

Результат зависит от движка и настроек поиска. В фильтрах и заменах FLOWIN уже включены IgnoreCase, Singleline, RE2 и Unicode, а Multiline по умолчанию выключен. Поэтому регистр букв не различается, точка может найти перенос строки, а ` ^ ` и ` $ ` относятся ко всему сообщению. Сверьте [настройки поиска](<https://flowin.click/prochee/regulyarnye-vyrazheniya#flowin-flags>) и проверьте выражение в FLOWIN на сообщениях с ожидаемым совпадением и без него.

 

**Почему .\* захватывает несколько строк?**

В FLOWIN включён Singleline: точка соответствует и переносу строки. Поэтому ` .* ` не обязано останавливаться в конце первой строки. Если нужно найти текст до ближайшего переноса, можно использовать ` [^\r\n]+ `: этот шаблон ищет один или несколько символов, кроме возврата каретки и переноса строки.

 

**Почему \\w не находит русские буквы?**

В настройках поиска FLOWIN ` \w ` охватывает латинские буквы, цифры и подчёркивание. Для русских букв используйте ` [а-яё] `, а для последовательности таких букв ` [а-яё]+ `. Букву ` ё ` нужно указывать отдельно: диапазон ` а-я ` её не включает. Большие и маленькие буквы различать не требуется, поскольку поиск уже не учитывает регистр.

 

**Как найти слово целиком, а не внутри другого слова?**

Добавьте ` \b ` с обеих сторон слова. Например, ` \bкот\b ` найдёт «Кот» в тексте «Кот, котёнок и скот», но пропустит два других слова. Границы проверяют положение слова, а пробелы и знаки препинания в найденный фрагмент не входят.

 

**Шаблон даты из примера проверяет, существует ли такая дата?**

Нет. Выражение ` \d{2}\.\d{2}\.\d{4} ` проверяет только форму записи: две цифры, точка, две цифры, точка и четыре цифры. Поэтому оно найдёт и ` 16.10.2026 `, и ` 99.99.2026 `. Этот пример подходит для поиска похожих на дату фрагментов, но не подтверждает правильность дня и месяца.

 

**Что проверить, если регулярное выражение ничего не находит?**

Сначала убедитесь, что рядом с полем «Искать» выбран «Regexp». Затем сравните шаблон с исходным текстом: пробелы, переносы строк и обычные знаки тоже влияют на совпадение. Например, ` Заявка №\d+ ` требует пробел перед № и цифры после него, поэтому не найдёт ` Заявка№125 ` или ` Заявка №ABC `. Проверьте также границы ` ^ ` и ` $ `: по умолчанию они относятся ко всему сообщению. Начните с простого фрагмента и добавляйте условия по одному, каждый раз проверяя результат.
