Автор: Vibe Apps Pro Team · Опубліковано: 2026-05-08
Як прибрати зайві пробіли з тексту онлайн (швидкий фікс)
Встав текст — і фікс: подвійні пробіли, нерозривні пробіли й розриви рядків з PDF зникають за секунди. Безкоштовний браузерний інструмент, без завантаження файлів.

Якщо ти хоч раз вставляв контент із PDF, документа Word чи вебсторінки й отримував подвійні пробіли між кожним словом — ти зіткнувся з однією з найпоширеніших дратівливих штук у роботі з текстом. Це не глюки відображення — це реальні символи, вбудовані в твій контент, і самі вони нікуди не зникнуть.
Ось як прибрати їх швидко.
Швидкий шлях: інструмент Виправити пробіли
Встав свій текст у наш Виправити пробіли — працює на 100% у вкладці браузера, твій текст ніколи не передається на жоден сервер — вибери потрібні операції й скопіюй очищений результат. Секунди — і готово.
Інструмент покриває сім конкретних операцій очищення:
| Операція | Що виправляє | До → Після |
|---|---|---|
| Прибрати зайві пробіли | Кілька пробілів схлопуються в один | слово слово → слово слово |
| Виправити розриви рядків з PDF | Прибрано жорсткі переноси всередині речення | швидкий коричневий\nлис → швидкий коричневий лис |
| Прибрати всі розриви рядків | Весь документ сплющений в один блок | рядок 1\nрядок 2 → рядок 1 рядок 2 |
| Прибрати порожні рядки | Видалено пусті рядки між абзацами | абзац\n\n\nабзац → абзац\n\nабзац |
| Обрізати краї рядків | Прибрано пробіли на початку/в кінці рядка | ·· привіт ·· → привіт |
| Прибрати спецсимволи | Видалено не-ASCII символи | résumé → resume |
| Випрямити лапки | Типографські «фігурні» лапки → прямі ASCII | "привіт" → "привіт" |
Обирай одну чи кілька — вони складаються. Панель прев'ю показує точно, що зміниться, перш ніж ти щось скопіюєш.
Чому вставлений текст приходить із зайвими пробілами
Розуміння джерела робить фікс менш загадковим.
PDF: геометрія, а не текст
PDF зберігає текст як координати гліфів, а не рядок символів. Витягання — це задача реверс-інжинірингу:
Внутрішньо в PDF: [гліф "с" на x=100] [гліф "л" на x=108] ... [гліф "с" на x=180] ...
↑ проміжок = 22px
Екстрактор: "слово" + " " + "слово" ← проміжок > порогу → вставлено два пробіли
Якщо координатний проміжок між двома словами трохи ширший за поріг екстрактора — типово для тексту з вирівнюванням по ширині чи широким кернінгом — вставляється два пробіли. Потенційно постраждати може будь-яка пара слів. Це не баг — це геометричне вгадування без ідеальної відповіді.
Word і InDesign: навмисний NBSP
Microsoft Word і InDesign вставляють нерозривні пробіли (U+00A0) у конкретних позиціях:
Ти вводиш: 10 кг
Word зберігає: 10[U+00A0]кг ← нерозривний пробіл, запобігає переносу рядка між числом і одиницею
Ти бачиш: 10 кг ← виглядає ідентично звичайному пробілу
Легітимна типографська поведінка в текстовому редакторі. Невидиме забруднення в ту мить, коли вставляєш це в будь-який інший контекст.
Копіпаст з HTML: пастка
Будь-яка сутність у вихідному HTML приходить у твій буфер обміну як U+00A0:
HTML-джерело: <td>Нью Йорк</td>
Буфер обміну: Нью[U+00A0]Йорк
Текстовий редактор: Нью Йорк ← виглядає нормально, поводиться зламано
Встав таблицю з сайту в звичайне текстове поле — і матимеш десятки таких символів.
П'ять символів пробілу, які створюють проблеми
Не всі «пробіли» — однаковий символ. Ось ті, з якими ти реально стикнешся:
| Символ | Unicode | Як з'являється | Візуальна відмінність |
|---|---|---|---|
| Звичайний пробіл | U+0020 | Введено вручну | Немає |
| Нерозривний пробіл | U+00A0 | Word, InDesign, HTML | Немає — невидимий |
| Пробіл нульової ширини | U+200B | Експорти з CMS, Markdown-парсери | Немає — справді невидимий |
| Емспейс (em space) | U+2003 | Дизайн-інструменти, деякі CMS | Трохи ширший |
| Тонкий пробіл (thin space) | U+2009 | Типографські шаблони | Трохи вужчий |
Інструмент Виправити пробіли обробляє всі ці варіанти. Регекс-підхід вимагає явних Unicode-кодів для кожного з них — а це підводить нас до ручного методу.
Ручний підхід через регулярні вирази
Якщо ти обробляєш багато документів, будуєш пайплайн, чи просто хочеш розуміти, що відбувається, Пошук і заміна впорається з цим за допомогою регулярок.
Схлопнути подвійні пробіли:
Знайти: [ \t]+
Замінити на: (один пробіл)
Флаги: g
Якщо замість цього використати \s+, воно з'їсть і переноси рядків — не роби так, якщо не хочеш отримати один величезний абзац. [ \t]+ бере тільки горизонтальні пробіли.
Замінити нерозривні пробіли:
Знайти:
Замінити на: (звичайний пробіл)
Флаги: gu
Флаг u обов'язковий. Без нього трактується як буквальний рядок, а не Unicode-екранування, і патерн мовчки нічого не знаходить.
Виправити артефакти розриву рядків з PDF:
Знайти: (?<!\n)\n(?!\n)
Замінити на: (пробіл)
Флаги: g
Цей патерн із негативним lookahead/lookbehind прибирає одинарні переноси рядків (артефакти всередині речення), лишаючи подвійні переноси недоторканими, тож розриви абзаців виживають. Точніше за «прибрати всі розриви рядків».
За глибшим розбором синтаксису патернів, груп захоплення й квантифікаторів — гайд з регулярних виразів: пошук і заміна містить повний довідник.
Нерозривні пробіли: невидима проблема
Заслуговують на окрему увагу, бо U+00A0 спричиняє подальші проблеми, яких немає у звичайних подвійних пробілів.
Розбіжність у кількості слів. Наївний спліт по пробілу (text.split(' ')) не розділить рядок по U+00A0. "Нью Йорк" з NBSP лишається одним токеном. Наш Лічильник слів використовує Intl.Segmenter — стандартний W3C API для мовно-залежної токенізації — який коректно обробляє Unicode-пробіли. Але встав свій текст у будь-яку платформу, що використовує простіший підхід, і твій підрахунок буде хибним.
Регулярки ламаються тихо. \s у JavaScript матчить таб, пробіл, перенос рядка, повернення каретки — але не U+00A0 за замовчуванням. Патерн на кшталт /\s+/g пропустить кожен нерозривний пробіл без попередження. Якщо пишеш регулярку для обробки вставленого користувачем контенту, додай U+00A0 явно: [ \t ]+.
Забруднення копіпастом у форматуванні документа. Це та сама категорія проблем із невидимими символами, що розглянута в статті скільки слів на сторінці — символи, що виглядають нормально на екрані, але спотворюють підрахунок символів, довжину рядків і розрахунки макета сторінки.
Пробіли нульової ширини: інший невидимий символ
Пробіли нульової ширини (U+200B) трапляються в тексті, експортованому з CMS на кшталт WordPress, Contentful і Notion, а також з деяких Markdown-парсерів. По-справжньому невидимі — без жодної ширини взагалі.
Виглядає як: тутслово
Насправді це: тут[U+200B]слово
Код бачить: два токени: "тут" + "слово"
Твій редактор його не підсвітить. Перевірка орфографії його ігнорує. Але токенізація слів і підрахунок символів його бачать. Щоб прибрати: знайди , заміни на нічого, флаги gu — або запусти «Прибрати спецсимволи» в інструменті Виправити пробіли, який одним проходом обробляє всі варіанти не-ASCII пробілів.
Коли пробіли чіпати не можна
Очищення пробілів безпечне для прози. Для всього, де відступи несуть зміст, воно руйнівне — і саме на цьому люди реально втрачають роботу.
Python. Відступ і є структурою блоків. Згортання початкових пробілів не переформатує файл, а змінює те, які інструкції опиняться всередині якого циклу, — або видасть IndentationError, якщо пощастить і воно впаде голосно.
YAML. Та сама проблема, наслідки гірші. Вкладеність виражена винятково початковими пробілами, тож один прохід очищення може тихо перепідпорядкувати ключ і перетворити маніфест Kubernetes чи конфіг CI на валідний YAML, який означає не те, що ти задумав. До того ж YAML забороняє табуляцію для відступів, тож доброзичлива заміна пробілів на таби ламає файл остаточно.
Markdown. Чотири початкові пробіли позначають блок коду, а два кінцеві — жорсткий перенос рядка. Операція «обрізати кінці рядків» прибирає ці переноси, тихо перезбираючи твої абзаци.
Файли diff, patch і TSV. У TSV символи табуляції — це роздільники колонок, тож згортання послідовностей пробільних символів зліплює колонки докупи. У patch-файлі початкові пробіл, + і - є частиною формату.
Правило просте: чисти пробіли у прозі й ніколи — у структурованому тексті. Якщо треба виправити конкретну проблему всередині файлу коду чи конфігу, влучай точково регуляркою в «Пошуку і заміні», а не жени загальне очищення по всьому документу. І оскільки кожна операція тут необов'язкова та має попередній перегляд, можна запустити лише потрібну — панель «до / після» покаже точно, що саме зміниться, ще до того, як ти це підтвердиш.
Перед очищенням: 30-секундне сортування
Не кожному документу потрібні всі сім операцій. Швидка перевірка спочатку:
- Пошук двох пробілів підряд. Якщо є збіги → забруднення подвійними пробілами з PDF чи старої звички друкувати на машинці.
- Пошук
у редакторі з підтримкою регулярок. Збіги → забруднення нерозривними пробілами з Word чи HTML. - Перевір рядки, що обриваються на півслові. Ознака артефактів витягання колонок із PDF.
- Перевір, чи виглядають відступи між абзацами непослідовно. Кілька порожніх рядків між абзацами → прохід очищення «порожніх рядків» це нормалізує.
Розуміючи, з якою саме проблемою маєш справу, запускаєш тільки потрібні операції — а панель прев'ю підтверджує результат ще до того, як ти щось застосуєш.
Зайві пробіли — одна з тих проблем форматування, що здається дрібницею, поки не перестає нею бути: поки кількість слів не виявиться хибною, регулярка не зламається, чи клієнт не запитає, чому документ виглядає по-різному в кожному абзаці. Дві хвилини очищення в момент вставки економлять значно більше часу далі по процесу.
Що робити, коли текст уже чистий
Очищення зазвичай перший крок конвеєра, а не вся робота. Два продовження трапляються постійно:
Сортування й дедуплікація списку. Коли кінцеві пробіли зникли, яблуко і яблуко нарешті порівнюються як однакові — саме тому очищення має йти першим. Спочатку очисти, потім сортуй рядки за алфавітом: там розібрано онлайн-інструмент, вбудовану команду VS Code й прапори термінального sort, а разом із ними — чутливість до регістру й локальне сортування, які тихо змінюють результат.
Порівняння двох версій файлу. Невидимі символи — головне джерело хибних спрацювань у diff: два візуально однакові рядки позначаються як змінені лише тому, що один закінчується нерозривним пробілом або CRLF. Якщо порівнюєш конфіги, розбіжності в .env чи дві редакції розділу, стаття порівняти два текстові файли онлайн окремо розбирає пастки з кодуванням, BOM і символами кінця рядка — а попереднє очищення обох сторін і є тим, що взагалі робить diff читабельним.
