Diff Checker | Сравнение Текстовых Файлов Бесплатно
Сравнивайте два текста рядом и мгновенно выделяйте различия. Идеально подходит для кода, статей и документов.
Как работает сравнение текста
Инструмент сравнения текста берёт два блока текста, исходный и изменённый, и точно отмечает, что было добавлено, удалено или осталось без изменений между ними. Обе версии можно вставить напрямую или загрузить файлами, а инструмент выравнивает содержимое и подсвечивает каждое различие именно там, где оно находится.
Как работает сравнение
Инструмент использует алгоритм наибольшей общей подпоследовательности: он находит самую длинную последовательность совпадающих фрагментов, общих для обоих текстов, и помечает всё остальное как вставку или удаление. Сравнение можно выполнять на трёх уровнях детализации: посимвольно, по словам или по строкам. Построчный режим подходит, чтобы увидеть, какие целые строки изменились в документе; пословный режим подходит для переформулированного предложения; посимвольный режим улавливает исправление одной опечатки. Результат отображается либо в виде двух колонок рядом (раздельный вид), либо объединённым в один сплошной текст с пометками внутри строки (единый вид). Добавленный текст подчёркивается зелёным, удалённый зачёркивается красным, а над результатом постоянно обновляется счётчик добавленных и удалённых символов. Файлы также можно загружать напрямую в форматах .txt, .json, .js, .ts, .css, .html, .md, .yaml или .xml, и они сравниваются так же, как вставленный текст.
Пример: переформулированное предложение
Исходный текст: «Встреча начинается в 10 часов». Изменённый текст: «Встреча начинается в 10 часов в переговорной 17». В пословном режиме как добавление помечается только «в переговорной 17», поскольку все остальные слова предложения совпадают. Если переключить ту же пару в посимвольный режим, инструмент вместо этого помечает буквы и пробел в «в переговорной 17» как вставку на уровне символов, потому что там это наименьшая сравниваемая единица.
Пример: сравнение фрагмента JSON
Загрузка или вставка двух версий конфигурационного файла работает так же. Исходный файл:
{
"port": 3800,
"debug": true
}
Изменённый файл:
{
"port": 9800,
"debug": true,
"timeout": 24
}
В построчном режиме строка с портом помечается как изменённая, поскольку 3800 превратилось в 9800, строка debug тоже помечается как изменённая, так как теперь заканчивается запятой, освобождая место для следующего поля, а новая строка «timeout»: 24 помечается как добавленная. Только открывающая и закрывающая фигурные скобки остаются без изменений. Сравнение обрабатывает оба файла как обычный текст, а не как разобранный JSON, поэтому перестановка тех же двух ключей местами без изменения значения всё равно отобразилась бы как различие.