Editly

Опубліковано: 2026-05-23

Як порівняти два тексти онлайн безкоштовно (diff слів)

Знайди кожне додане, видалене й змінене слово між двома чернетками миттєво — diff на рівні слів, Unicode-safe, на 100% у браузері. Порівняй тексти зараз.

Дві колонки тексту поруч: додані слова підсвічені зеленим, видалені — закреслені червоним на темно-сланцевому тлі

У тебе є дві версії того самого тексту, і треба точно знати, що змінилося. Може, редактор повернув твоє есе, може, колега переписав твій лист, а може, ти втупився у два пункти договору, які виглядають однаково. Читати їх поряд і ловити різницю на око — повільно й ненадійно: мозок ковзає по тексту, і єдине слово, що має значення, — саме те, яке ти пропустиш.

Виправити це — три секунди. Встав обидві версії в наш Порівняння текстів — він працює на 100% у браузері, нуль даних на жоден сервер — і кожне додане, видалене та незмінне слово вмить розфарбується. Зелений для нового, червоний для зниклого, сірий для того, що лишилося. Читати нічого не треба.


Найшвидший спосіб порівняти два тексти

Ось увесь процес:

  1. Відкрий Порівняння текстів
  2. Встав оригінальний текст у ліве поле
  3. Встав виправлену версію в праве поле
  4. Diff рендериться наживо — додавання зеленим, вилучення червоним

Підсумковий рядок показує лічбу: X слів додано, Y видалено, Z без змін. Часто цього єдиного рядка зайнятому рецензенту й досить — він відповідає на питання «а скільки взагалі змінилося?» ще до того, як ти прочитаєш бодай слово деталей.

Оце і все. Жодного діалогу завантаження, жодного вибору файлу, жодного спінера «обробляємо ваш документ». Порівняння рахується тієї ж миті, коли в обох полях з'являється текст.


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

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

ДеталізаціяЩо порівнюєДля чого найкращеКомпроміс
На рівні символівКожен окремий символКод, точні рядки, полювання на одруківкиБолісно «шумна» на прозі — позначає кожну літеру
На рівні слівКожне слово як один токенЕсе, статті, листи, підписиЗолота середина для всього, що читає людина
На рівні рядківЦілі рядки за разКод, рядки CSV, спискиПропускає правки всередині рядка

Для порівняння двох текстів — справжніх речень і абзаців — майже завжди потрібен рівень слів. Зміни «кіт сів» на «пес сів», і символьний diff заволає про три змінені літери посеред слова; а diff на рівні слів спокійно скаже тобі: «кіт» став «псом». Це і є різниця між читабельною рецензією та візуальним шумом.

Порівняння текстів за задумом працює на рівні слів. Воно заточене під прозу, а не під вихідний код.


Пастка невидимих символів (чому «однакові» тексти різні)

Це той баг, що з'їдає всім по півдня. Ти вставляєш два абзаци, які явно однакові, тиснеш «порівняти» — а інструмент підсвічує пів тексту червоним і зеленим. Що сталося?

Невидимі символи. Текст не однаковий — він лише виглядає однаковим. Звичні підозрювані:

  • Типографські лапки — Word і Google Docs автоматично перетворюють ' на ' (U+2018/U+2019). Встав з одного джерела й набери в іншому — і твої апострофи не збігаються.
  • Нерозривні пробіли — вебвміст напханий   (U+00A0), а це інший символ, ніж звичайний пробіл.
  • Зайві пробіли в кінці — випадковий пробіл у кінці рядка невидимий, але враховується.
  • Закінчення рядків — Windows використовує \r\n, Unix — \n. На вигляд однаковий перенос, інші байти.

Рядок тексту, збільшений так, що проступають приховані символи — типографська лапка, нерозривний пробіл і кінцевий пробіл — виринають як світні маркери над словами

Виправлення — 10-секундне попереднє чищення. Спершу прожени обидва тексти через інструмент Виправити пробіли — він випрямляє типографські лапки, прибирає нерозривні пробіли й підрізає закінчення рядків за один прохід. Усю механіку цього ми розклали в матеріалі як прибрати зайві пробіли з тексту онлайн, бо вставлений текст приходить забрудненим частіше, ніж ні. Спершу почисти, потім порівнюй. Твій diff із хаосу перетвориться на сигнал.


Для чого це реально використовують

«Порівняти два тексти» звучить абстрактно, поки не прив'яжеш до справжньої роботи. Ось хто тягнеться до diff-інструмента й навіщо:

ХтоЩо порівнюєЩо шукає
СтудентиСвою чернетку проти виправленої викладачемЯкі саме речення змінили й чому
АвториРозділ v3 проти розділу v4Чи пізня правка випадково не вирізала ключовий рядок
SMM-менеджериДва варіанти підпису для A/B-тестуТочну різницю у формулюваннях версій A і B
Юристи / opsДоговір надісланий проти повернутогоПравки — кожен пункт, який контрагент тихцем змінив
РедакториЧернетку від ШІ проти фінальної людськоїСкільки машинного виводу пережило редактуру

Останнє трапляється дедалі частіше. Кинь сирий вивід моделі ліворуч, свою відшліфовану версію праворуч — і зелено-червоний розподіл з першого погляду покаже твій реальний редакторський слід. Корисно і щоб довести, що текст торкалася людина, і щоб побачити, де ти постійно переписуєш.


Як порівняння працює насправді (для допитливих)

Під капотом diff використовує алгоритм найдовшої спільної підпослідовності (LCS) — той самий підхід динамічного програмування, що живить git diff і більшість систем контролю версій. Він не вгадує. Він обчислює математично найдовший пробіг слів, спільний для обох текстів у тому ж порядку, а тоді позначає все поза цим пробігом як додане чи видалене.

Вартість — $O(m \times n)$, де m і n — кількість слів двох текстів. На практиці це означає, що два документи по 5000 слів — 25 мільйонів комірок матриці порівняння — все одно звіряються значно менш ніж за секунду на звичайному ноутбуці. Просто працює.

Крок токенізації важить не менше за сам алгоритм. Джуніорська реалізація ріже по пробілах через text.split(' ') і вважає роботу зробленою. Це ламається тієї ж миті, коли згодуєш їй китайську, японську чи тайську — писемності, де слова не розділяються пробілами, — повертаючи один велетенський токен замість речення, тож будь-яка правка підсвічує цілий рядок. Порівняння текстів натомість токенізує через Intl.Segmenter: стандартний за W3C сегментатор слів із урахуванням локалі, вбудований у кожен сучасний браузер — той самий API, який ми ганяли в матеріалі як рахувати слова в JavaScript. Він ділить 私は学生です на справжні слова, тож заміна 学生 на 先生 підсвічує рівно ці два ієрогліфи, а не все речення.

Є й друга вигода. Кожен словесний токен зберігає причеплену кінцеву пунктуацію й цифри, тож числова правка ловиться як чиста заміна токена. Зміни в договорі $100,000 на $200,000 — і diff позначить цей один токен; він не пропустить тихцем цифри так, як це зробив би патерн на самих літерах /\p{L}+/. Слова, числа й символи — усе порівнюється.

Ось увесь конвеєр — два рядки на вході, кольорова розмітка на виході:

Токен у AТокен у BВердикт LCSЯк відрендериться
thetheу спільній підпослідовностісірий — без змін
catвідсутній у Bчервоне закреслення — видалено
dogвідсутній у Aзелений — додано
satsatу спільній підпослідовностісірий — без змін

Токенізувати → вирівняти через LCS → загорнути кожен токен у кольоровий span. Три стадії, без сервера, без вгадування.


Бонус: масове редагування перед порівнянням

Іноді різниця між двома текстами — це не випадкова зміна, а системна, яку ти хочеш внести сам. Перейменувати продукт по всьому документу, замінити кожне «колір» на «барва», уніфікувати термінологію перед diff.

Для цього бери Пошук і заміну. Внеси масову зміну в одну версію, а тоді звір її з оригіналом — переконатися, що заміна влучила в кожне входження й ні в що зайве. Інструмент підтримує повноцінні регулярки з прапором u для Unicode, тож можна матчити патерни, а не літеральні рядки — зручно, коли те, що замінюєш, має варіації. Просто пам'ятай, для чого кожен інструмент: Пошук і заміна вносить зміни, Порівняння текстів їх показує. Разом вони утворюють щільний цикл «відредагуй і перевір».

А якщо тобі просто треба знати, яка з версій довша — кількість слів, час читання, оцінка читабельності — встав її в Лічильник слів і отримай повний розклад.


Той бік приватності, про який ніхто не згадує

Більшість сервісів «порівняти текст онлайн» тихцем POST-ять твої два блоки тексту на бекенд, рахують diff на сервері й шлють результат назад. Для списку покупок — кого це обходить. А для непідписаного договору, прес-релізу під ембарго чи рукопису, на який ти ще не зареєстрував авторське право, — це твій конфіденційний текст, що лежить у чужих серверних логах.

Порівняння текстів цього запиту не робить ніколи. Обчислення LCS відбувається в тому ж рушії V8, що рендерить цю сторінку; твої два тексти не залишають вкладки. Немає завантаження — отже, немає чого перехопити, закешувати чи витребувати через суд. Це та гарантія, яка мала б бути типовою для текстових інструментів і чомусь досі нею не стала.

Дві версії, одне порівняння, нуль даних, що залишають твою машину. Відкрий Порівняння текстів і дізнайся точно, що змінилося.

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

Порівняння двох текстів онлайн справді безкоштовне?

Так — інструмент Порівняння текстів за адресою /compare-text повністю безкоштовний: без акаунта, без реєстрації й без жодного кроку із завантаженням файлів. Встав два блоки тексту, натисни «порівняти» — і миттєво бачиш diff на рівні слів. Немає ліміту символів, який підштовхує до платного тарифу, і немає водяного знака на результаті. Усе працює у твоєму браузері, тож єдина «ціна» — це півсекунди роботи процесора твоєї ж машини.

Чим порівняння двох текстів відрізняється від порівняння двох файлів?

Порівняти тексти означає вставити два блоки прози просто в інструмент — ідеально для чернеток есе, підписів до постів, версій листа чи пунктів договору, які ти звідкись скопіював. Порівняти файли означає завантажити два документи (.txt, .docx, файли коду) і звірити їхній повний вміст. Для щоденної роботи з текстом тобі майже завжди потрібен підхід «встав два блоки»: він швидший, відкидає форматне сміття документа й фокусує diff саме на словах, які реально змінилися.

Чому два тексти, що виглядають однаково, показуються як різні?

Невидимі символи. Звичні винуватці — це типографські лапки («розумні» лапки U+2018/U+2019 проти прямих ASCII-апострофів), нерозривні пробіли (U+00A0) зі скопійованого вебвмісту, зайві пробіли в кінці рядків і переноси Windows CRLF проти Unix LF. Око їх не бачить, а рушій порівняння трактує як окремі символи. Спершу почисти обидва тексти інструментом Виправити пробіли за адресою /remove-spaces — і хибні спрацювання зникнуть ще до diff.

Чи працює порівняння з неанглійськими мовами?

Працює. Інструмент токенізує текст через Intl.Segmenter — вбудований у браузер сегментатор слів, що враховує локаль (стандарт W3C), — замість того щоб різати по пробілах. Тому він коректно опрацьовує кирилицю, арабську, німецькі умляути та CJK-писемності, де слова не розділяються пробілами. Наївний diff на text.split(' ') повертає один велетенський токен для китайського речення й ламається повністю. А оскільки Intl.Segmenter знає, де слова реально починаються й закінчуються, зміну всередині японського чи українського абзацу він локалізує так само точно, як і в англійському.

Чи можна порівняти більш ніж два тексти одночасно?

Інструмент порівнює два тексти за раз — оригінал і ревізію. Це стандарт для diff, бо осмислене порівняння потребує рівно однієї базової версії та однієї кандидатної. Щоб звірити три версії, зроби два проходи: оригінал проти чернетки 2, потім чернетка 2 проти чернетки 3. А якщо ти полюєш на повторювані фрази всередині одного документа, а не порівнюєш два, то для цього завдання краще пасує Частота слів.

Який алгоритм використовується для порівняння двох текстів?

Алгоритм найдовшої спільної підпослідовності (LCS) — той самий фундамент динамічного програмування, що живить git diff і більшість систем контролю версій. LCS знаходить найдовшу послідовність слів, яка є в обох текстах у тому ж порядку, а тоді позначає все поза цією послідовністю як додане (зелене) чи видалене (червоне). Працює за час O(m × n), де m і n — кількість слів, тому навіть два есе по 5000 слів звіряються значно менш ніж за секунду.

Чи завантажується мій текст на сервер, коли я його порівнюю?

Ні. Кожен байт порівняння відбувається в JavaScript-рушії твого браузера — нічого не передається, не зберігається й не логується. Це критично, коли звіряєш конфіденційне: правки договору, неопублікований рукопис, внутрішні службові записки, NDA. Закрий вкладку — і обидва тексти зникають з пам'яті. Немає серверної копії, яку можна злити, бо сервер тексту просто не отримував.

Спробуйте наш безкоштовний лічильник слів

Миттєво рахуйте слова, перевіряйте читабельність та аналізуйте текст.

Відкрити лічильник слів