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

Language: uk
Canonical: <https://flowin.click/uk/articles/rehuliarni-vyrazy-u-filtrakh-i-zaminakh>
Published: 2026-11-12T23:53:37+00:00
Modified: 2026-11-12T23:53:43+00:00

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

Так можна шукати дати, посилання, окремі слова, цілі рядки й майже будь-які поєднання тексту, які можна описати правилом. Кілька простих символів дають змогу враховувати змінні значення, вибирати з різних варіантів і пропускати непотрібне. Можливості такого пошуку значно ширші за звичайний пошук за словом.

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

Зміст статті

- [Можливості регулярних виразів](<https://flowin.click/uk/articles/rehuliarni-vyrazy-u-filtrakh-i-zaminakh#headline-6-324>)
- [Як читати регулярний вираз](<https://flowin.click/uk/articles/rehuliarni-vyrazy-u-filtrakh-i-zaminakh#reading-pattern>)
- [Синтаксис регулярних виразів](<https://flowin.click/uk/articles/rehuliarni-vyrazy-u-filtrakh-i-zaminakh#headline-11-324>)
- [Налаштування пошуку у FLOWIN](<https://flowin.click/uk/articles/rehuliarni-vyrazy-u-filtrakh-i-zaminakh#flowin-flags>)
- [Готові шаблони](<https://flowin.click/uk/articles/rehuliarni-vyrazy-u-filtrakh-i-zaminakh#headline-45-640>)
- [Поширені запитання](<https://flowin.click/uk/articles/rehuliarni-vyrazy-u-filtrakh-i-zaminakh#faq>)

## Можливості регулярних виразів

Підтримка регулярних виразів у фільтрах і замінах FLOWIN дає змогу:

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

Режим «Regexp»

У налаштуваннях фільтра або заміни режим «Regexp» біля поля «Шукати» вмикає пошук за регулярним виразом. Сам шаблон задається в цьому полі. Створення правила та його застосування до пересилання описано в інструкціях із [фільтрів](<https://flowin.click/uk/articles/filtratsiia-peresylanykh-povidomlen>) і [замін](<https://flowin.click/uk/articles/zaminy-v-peresylanykh-povidomlenniakh>).

[![Режим «Regexp» біля поля «Шукати» в налаштуваннях заміни](<https://flowin.click/wp-content/uploads/2026/11/cf-c466f268f78593277dbd021e.webp>)](<https://flowin.click/wp-content/uploads/2026/11/cf-c466f268f78593277dbd021e.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/uk/articles/rehuliarni-vyrazy-u-filtrakh-i-zaminakh#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/uk/articles/filtratsiia-peresylanykh-povidomlen>) або [заміні](<https://flowin.click/uk/articles/zaminy-v-peresylanykh-povidomlenniakh>).

 

**Чому вираз з онлайн-тестера працює у FLOWIN інакше?**

Результат залежить від рушія й налаштувань пошуку. У фільтрах і замінах FLOWIN уже ввімкнено IgnoreCase, Singleline, RE2 та Unicode, а Multiline за замовчуванням вимкнено. Тому регістр літер не розрізняється, крапка може знайти перенесення рядка, а ` ^ ` і ` $ ` стосуються всього повідомлення. Звірте [налаштування пошуку](<https://flowin.click/uk/articles/rehuliarni-vyrazy-u-filtrakh-i-zaminakh#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 `. Перевірте також межі ` ^ ` і ` $ `: за замовчуванням вони стосуються всього повідомлення. Почніть із простого фрагмента й додавайте умови по одній, щоразу перевіряючи результат.
