Как преобразовать CRLF на пустой строке в \n, не затрагивая другой код CRLF в другом месте

Как преобразовать CRLF на пустой строке в \n, не затрагивая другой код CRLF в другом месте

Я пишу мини-роман по семейной истории и работаю над ним на другом компьютере.

Я использовал старую версию UltraEdit для своего текстового процессора. Но она была не очень совместима с Windows после XP. Я где-то прочитал пост о том, как заставить ее работать на Windows 7, которая работала и которая пережила перенос данных на мой ноутбук с Windows 10. Затем однажды она зависла, и я не смог ее исправить. Поэтому многие мои друзья посоветовали мне попробовать Notepad++, утверждая, что она лучше, чем UltraEdit 13. Я попытался работать с ней в Notepad++, но форматирование было нарушено. Вместо моих абзацев, которые были все на одной строке и автоматически переносились на край экрана, а затем пустая строка между ними, как я это написал, все было разорвано. Я включил «Показывать символы» и вместо одного CRLF в конце каждой строки абзаца, за которым следовал CRLF для пустой строки, в нем было несколько CRLF. В общем, примерно на 200% больше, чем я хотел.

Я пытался набрать здесь текст, чтобы показать, как он выглядит в Notepad++, но эта доска объявлений исправляет его так, что он выглядит так, как должен. Поэтому я не могу показать вам, как он выглядит. Однако я нашел это где-то здесь, выполните поиск\замену RegEx для \R(?!\R), и это исправит строки в абзацах. Однако я хотел эту пустую строку между абзацами, потому что я добавляю их, не задумываясь. Так что теперь, когда на абзац приходится только один CRLF, есть ли поиск\замена RegEx для добавления \n в конце каждой строки с текстом на ней, чтобы эта строка создавалась между уже написанными абзацами? Это сводит меня с ума. Но я не могу позволить себе обновить UltraEdit. и мне, вероятно, не понравится новая версия в любом случае...

решение1

Не совсем понимаю, но вы хотите удалить переносы строк только в том случае, если перед ними или после них нет другого переноса строки.


Это делает свое дело:

  • Ctrl+H
  • Найти то, что:(\R\R)\R*|\R
  • Заменить:$1
  • ВЫБИРАТЬ Регулярное выражение
  • Replace all

Объяснение:

(\R\R)      # 2 linebreaks (i.e. paragraphs spacing)
\R*         # 0 or more linebreaks, optional
|           # OR
\R          # a single linebreak

Замена:

$1          # content of group 1, 2 linebreaks

решение2

Легко исправить в Notepad++:

  • Нажмите CtrlH, чтобы открыть диалоговое окно «Поиск/Замена».

Заменить двойной EOL

  • НаборРежим поискакРасширенный.

  • Введите \r\n\r\nвНайти то, что:, т. е. пара символов CR и LF.

  • Введите \r\n\вЗаменить:.

  • НажмитеЗаменить все.

    При каждом нажатии этой кнопки количество дублирующихся пар CR/LF уменьшается.на протяжении всего документа.Это создаетодинокийПеревод строки в конце каждого абзаца. Переключите приведенные выше аргументы надвойноймежстрочный интервал.

Если вы хотите постоянствадвойная линияинтервал

  • Изменятьвсекодинокиймежстрочный интервал, как показано выше.
  • Затем найдите все \r\nи замените на \r\n\r\n,один раз.

Еще более расширенные функции поиска доступны с помощьюРегулярное выражение.

Связанный контент