Текст

Regex Tester / Find & Replace

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


                        

                        

A regular expression (regex) is a compact language for describing patterns in text — for searching, validating a format, or replacing matches. This tool highlights matches in real text as you type the pattern, breaks out capture groups, and supports a find-and-replace mode.

How to use it

Common uses

Things to keep in mind

Greedy quantifiers (*, +) grab as many characters as possible — add ? for the minimal match instead (e.g. .*? instead of .*).

Syntax varies slightly between languages — an expression that works here (a JavaScript engine) may need adjusting for PCRE, .NET, or 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-совместимую строку вида privet-mir.

Markdown: почему простой текстовый синтаксис победил сложные редакторы

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

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

Почему две на вид одинаковые строки могут не совпадать при сравнении из-за невидимого символа.

Text Reverse: почему «перевернуть текст» сложнее, чем кажется

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

Частотный анализ текста: зачем считать повторения слов

Как частота букв в зашифрованном тексте помогает взломать простейшие шифры подстановки.