Поиск и замена

Заменяйте все совпадения по мере ввода — без кнопок и без загрузки.

Параметры сопоставления

Как пользоваться

  1. Вставьте текст в первое поле, затем заполните «Найти» и «Заменить на» — результат появляется по мере ввода, нажимать ничего не нужно.
  2. Включайте «Целое слово», если короткий термин иначе задевает более длинные слова; включайте «Регулярное выражение», чтобы искать по шаблону, например «\d+» для чисел или «(\w+)@(\w+)», чтобы поменять местами две части адреса email.
  3. Кнопка «Копировать» заберёт результат, «Скачать .txt» сохранит файл. Подсвеченные фрагменты в результате — это ровно то, что было записано на месте каждого совпадения.

Пример

Ввод

Текст:
Заказ 1001 отправлен
Заказ 1002 отправлен
Заказ 1003 в обработке

Найти: отправлен
Заменить на: доставлен

Результат

Заказ 1001 доставлен
Заказ 1002 доставлен
Заказ 1003 в обработке

(Заменено: 2)

В примере используются только правила по умолчанию (учёт регистра, буквальное совпадение), поэтому меняются два слова статуса и больше ничего. Подсвеченные фрагменты — это текст, записанный на месте совпадения; у удалённых позиций подсвечивать нечего.

Правила, ограничения и известные проблемы

  • Только «заменить всё»: переключателя «заменить первое» и стека отмены нет — но поле ввода никогда не перезаписывается, поэтому исходный текст всегда на расстоянии одной правки.
  • В буквальном режиме (по умолчанию) «.*», «(» и «$1» — обычные символы. Только при включённом «Регулярное выражение» поиск становится шаблоном, а в замене работают $1, $&, $$ и $<name>.
  • Режим regex привязан к строкам: «^» и «$» совпадают с началом и концом каждой строки (поэтому «^» плюс префикс добавляет его в начало каждой строки), а «.» никогда не совпадает с переводом строки.
  • Замена просматривает исходный текст один раз: вставленный текст больше не сопоставляется — замена «а» на «аа» даёт «аа», а не бесконечный рост. Совпадения не перекрываются, поэтому «аа» внутри «ааа» — одно совпадение.
  • «Игнорировать регистр» в буквальном режиме работает по правилам языка страницы (турецкие I/ı обрабатываются корректно, а İ раскладывается в две кодовые точки, поэтому одиночная «i» с ним не совпадёт); в режиме regex используется флаг i браузера, поэтому для некоторых языков результаты могут отличаться.
  • «Игнорировать полную/половинную ширину» (китайские, японские и корейские страницы) влияет только на сравнение: широкие запятая, скобки и пробел равны обычным. Замена записывается ровно так, как набрана.
  • «Целое слово» предлагается только на английских и арабских страницах: в CJK-письме нет границ слов, и переключатель там ничего бы не менял — вместо него такие страницы получают опцию полной и половинной ширины.
  • Совпадения нулевой длины (например, «^» или «\b») вставляют замену в эту позицию, а затем сдвигаются на один символ, поэтому ничего не зацикливается.
  • Свыше 400 совпадений результат перестаёт подсвечивать каждую замену и показывает обычный текст с точным счётчиком; свыше 200 000 символов результат обновляется примерно через 0,6 с после того, как вы закончите ввод, и текст никогда не обрезается.
  • Сложное регулярное выражение может катастрофически откатываться на длинном тексте, а браузер не умеет это прервать — проверьте шаблон на коротком фрагменте, прежде чем вставлять весь документ.
  • Нет загрузки файлов, обработки нескольких файлов, сохранения регистра и истории; токены замены $` и $' не поддерживаются. Всё выполняется в браузере: ничего не загружается и не сохраняется.

Что обычно нужно дальше, когда замены сделаны.