LINUX.ORG.RU

Как переформатировать «книжные» абзацы с переносами в длинные строки?

 ,


0

1

Имеется текст, в котором абзацы разбиты на строки, причем в словах имеются переносы. Выглядит текст вот так:

Это такой текст в котором есть переносы
строк. Причем строки переносятся не толь-
ко на границах слов, но и с помощью сим-
волов переноса (символ "тире").

Каждый абзац отделяется от другого пустой
строкой.

И нужно преобразовать этот текст так, чтобы один абзац представлял из себя одну строку, вот так:
Это такой текст в котором есть переносы строк. Причем строки переносятся не только на границах слов, но и с помощью символов переноса (символ "тире").

Каждый абзац отделяется от другого пустой строкой.

Как это можно быстро сделать? Есть ли готовые утилиты? Может быть, есть какой-то сервис онлайн?

★★★★★
Ответ на: комментарий от Forum0888

Использовать в тексте «неразрывный дефис»

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

или использовать в алгоритмах словари

Да, это хорошая идея, я ниже написал про чёрный и белый списки, по сути, это и есть специализированные словари.

hobbit ★★★★★
()
Ответ на: комментарий от hobbit

специализированные словари.

Здесь пожалуй большой пласт задач.
Для начала, создать/использовать словари и разработать эффективный API для работы с ними.

Извиняюсь конечно за пиар, но API и объекты для такого рода задач у меня уже разработаны.
Ныне разработка ЯП в приоритете всех задач, так он упростит использование файлов и баз метаданных.

Forum0888
()
Последнее исправление: Forum0888 (всего исправлений: 4)
Ответ на: комментарий от hobbit

Гораздо хуже другое: что будет после автоликвидации переносов с такими конструкциями, как «стоп-кран», «заказ-наряд» или даже банальным «кое-как»? Видимо, получится именно «коекак».

Чтобы это отловить, просто весь текст на последнем этапе засовывается в Либру, и она все такие места подсветит.

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от Xintrea

и она все такие места подсветит

Ну может быть… хотя насчёт все мой внутренний параноик сильно сомневается. Ты же ведь в курсе, что «ракета-носитель» и «ракетоноситель» это два совсем разных понятия? Но они хотя бы одной буквой отличаются (кроме дефиса), а теоретически в языке могут быть и более хитрые неоднозначности.

hobbit ★★★★★
()

Я для одного из проектов использовал VIM (см SHIFT+J). Написал макросы для разных случаев и повесил на кнопки. Скрипты получались переусложненными с false-positive срабатываниями - поэтому приходилось визуально контролировать.

necromant ★★
()