Текст

Regex Tester / Find & Replace

Перевірка регулярних виразів на реальному тексті: підсвічені збіги й розібрані групи захоплення, або заміна знайдених збігів на новий текст.


                        

                        

Regex (регулярний вираз) — компактна мова для опису шаблонів у тексті: пошук, перевірка формату чи заміна. Інструмент показує збіги на реальному тексті одразу під час набору виразу, підсвічує групи захоплення й підтримує режим заміни.

Як користуватися

Типові сценарії

Що варто памʼятати

Жадібні квантифікатори (*, +) захоплюють якнайбільше символів — якщо потрібен мінімальний збіг, додайте ? (наприклад, .*? замість .*).

Синтаксис трохи відрізняється між мовами програмування — вираз, що працює тут (JavaScript-движок), може знадобитися адаптувати для PCRE, .NET чи Python.

Стаття про цей інструмент: Регулярні вирази: основний синтаксис і типові патерни

Часті запитання

Який движок regex використовується?

Інструмент використовує движок regex JavaScript, а не PCRE, тож деякий специфічний для PCRE синтаксис (як рекурсивні твердження чи певні режими посесивного зіставлення) тут не працюватиме; підтримуються поширені прапорці, як-от g, i, m, s та u.

Яка різниця між жадібними й лінивими квантифікаторами, та між Test і Replace?

Жадібний квантифікатор, як * чи +, захоплює якомога більше тексту, тоді як його лінива версія (*?, +?) зупиняється якомога раніше; щодо режимів, Test підсвічує збіги й перелічує групи захоплення (включно з іменованими), а Replace застосовує замінний текст, із посиланнями на кшталт $1, до кожного збігу.

Чи надсилаються мій текст і вираз на сервер?

Ні, обчислення регулярного виразу повністю відбувається на стороні клієнта у вашому браузері, нічого не передається онлайн.

Що таке катастрофічний backtracking?

Вкладені квантифікатори на кшталт (a+)+ можуть на певних вхідних рядках змусити движок перебирати експоненційну кількість комбінацій — сторінка чи скрипт «зависають» на, здавалося б, простому виразі. Це реальна вразливість (ReDoS), тому складні вкладені квантифікатори варто тестувати на довгих майже-збіжних рядках.

Чому мій вираз працює в одній мові програмування, але не в іншій?

Синтаксис regex не повністю стандартизований: PCRE (PHP, багато інших мов), .NET, Python re і JavaScript мають дрібні відмінності в підтримці певних конструкцій (наприклад, look-behind чи іменованих груп) — вираз, написаний для одного движка, не завжди без змін працює в іншому.

Статті: Текст

Case Converter: навіщо потрібні різні стилі написання

Чому в одному проєкті змінні пишуть camelCase, а файли — kebab-case, і звідки взялись ці правила.

Text Diff: як алгоритми знаходять різницю між текстами

Як diff-алгоритм знаходить мінімальний набір змін між двома версіями тексту.

Сортування та видалення дублікатів рядків: навіщо це потрібно

Чому числове сортування «10» перед «9» — це помилка, і як цього уникнути.

String Escape: чому той самий текст треба екранувати по-різному

Чому той самий символ лапок екранується по-різному в JS-рядку, JSON і shell-команді.

CRLF проти LF: чому символи кінця рядка досі мають значення

Чому файл, написаний у Windows, може показувати «змінений увесь файл» у git на Linux.

Підрахунок символів і слів: чому це не завжди тривіально

Чому емодзі чи символи з діакритикою можуть рахуватись як кілька символів одразу.

Lorem Ipsum: звідки взявся текст-заповнювач і навіщо він потрібен

Чому дизайнери навмисно використовують «безглуздий» текст замість реального контенту в макетах.

Slugify: як перетворити довільний текст на URL-адресу

Як заголовок «Привіт, Світ!» перетворюється на URL-сумісний рядок вигляду pryvit-svit.

Markdown: чому простий текстовий синтаксис переміг складні редактори

Чому розробники обирають писати документацію в Markdown, а не в форматованому текстовому редакторі.

Пробіли та невидимі символи: прихована причина дивних багів

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

Text Reverse: чому «перевернути текст» складніше, ніж здається

Чому наївний реверс рядка може перетворити емодзі на непридатні для показу байти.

Частотний аналіз тексту: навіщо рахувати повторення слів

Як частота літер у зашифрованому тексті допомагає зламати найпростіші шифри підстановки.