Поиск CRLF в Notepad++

Как найти/заменить все символы CR/LF в Notepad++?

Я ищу что-то эквивалентное специальному символу ^p в Microsoft Word.

Комментарии к вопросу (6)
Решение

[\r\n]+ тоже должно сработать.

Обновление 26 марта 2012 года, дата выхода Notepad++ 6.0:

ОМГ, теперь это действительно работает!!!


Оригинальный ответ 2008 (Notepad++ 4.x) - 2009-2010-2011 (Notepad++ 5.x)

На самом деле нет, похоже, это не работает с regexp...

Но если у вас Notepad++ 5.x, вы можете использовать 'расширенный' режим поиска и искать \r\n. Это найдет все ваши CRLF.

(Я понимаю, что это тот же ответ, что и остальные, но, опять же, 'расширенный режим' доступен только в Notepad++ 4.9, 5.x и более)


С апреля 2009 года на сайте Notepad++ есть вики-статья на эту тему:
"How To Replace Line Ends, thus changing the line layout".
(упомянута georgiecasey в его/ее ответе ниже)

Некоторые соответствующие выдержки включают следующие процессы поиска:

Простой поиск (Ctrl+F), Режим поиска = Нормальный.

Вы можете выбрать EOL в окне редактирования.

  • Просто подведите курсор к концу строки и введите Shift+Right стрелку.
  • Или, чтобы выделить EOL с помощью мыши, начните прямо с конца строки и перетащите к началу следующей строки; перетаскивание вправо от EOL не сработает. Вы можете вручную скопировать EOL и вставить его в поле для файлов Unix (только для LF).

Простой поиск (Ctrl+F), Режим поиска = Расширенный

Опция "Расширенный" показывает \n и \r как символы, которые могут быть сопоставлены.
Как и в обычном режиме поиска, Notepad++ ищет точный символ.
Поиск \r в файле формата UNIX ничего не даст, а поиск \n даст. Аналогично, файл формата Macintosh будет содержать \r, но не \n.

Простой поиск (Ctrl+F), Режим поиска = Регулярное выражение

В регулярных выражениях используются символы ^ и $ для привязки строки совпадения к началу или концу строки. Например, при поиске return;$ будут найдены вхождения "return;", которые встречаются без последующего текста в той же строке. Символы привязки работают одинаково во всех форматах файлов.
Метасимвол точки '.' не соответствует окончаниям строк.

[Проверено в Notepad++ 5.8.5]: поиск в регулярных выражениях с явным \r или \n не работает (вопреки документации Scintilla).
Также не работает поиск по явному (вставленному) LF или по (невидимым) символам EOL, помещаемым в поле при выборе EOL. Расширенный поиск (Ctrl+R) без regexp

Ctrl+M будет вставлено то, что соответствует новым строкам. Они будут заменены строкой замены.
Я рекомендую этот метод как наиболее надежный, если только вам не нужно использовать regex.
Например, чтобы удалить каждую вторую новую строку в файле с двойным интервалом, введите Ctrl+M дважды в поле строки поиска и один раз в поле строки замены.

Расширенный поиск (Ctrl+R) с помощью Regexp.

Ни Ctrl+M, ни $, ни \r\n не совпадают.


В той же вики упоминается альтернатива Hex-редактору:

  • Введите новую строку в начале документа.
  • Затем выберите просмотр документа в шестнадцатеричном режиме.
  • Выберите одну из новых строк и нажмите Ctrl+H.
  • Пока у вас открыто диалоговое окно Заменить, выделите на фоне новую строку замены и Ctrl+C скопируйте ее, чтобы вставить в поле Заменить текстом.
  • Затем замените или замените все по своему усмотрению.

Примечание: символ, выбранный для новой строки, обычно отображается как 0a.
Он может иметь другое значение, если файл имеет формат Windows. В этом случае вы всегда можете перейти к Edit -> EOL Conversion -> Convert to Unix Format, а после замены переключить его обратно и Edit -> EOL Conversion -> Convert to Windows Format.

Комментарии (12)

Похоже, что это FAQ, и предлагаемое разрешение:

Простой поиск (Ctrl + H) без regexp

Вы можете включить View / Show End of Line или просмотреть / Показать все, и выберите сейчас видимые символы новой строки. Тогда когда Вы запускаете команду некоторых символов сопоставление символа новой строки будет вставил в поле поиска. Матчи будет заменен заменой строка, в отличие от режима регулярного выражения.

Примечание 1: Если вы выберете их с мышь, начни прямо перед ними и перетащи к началу следующей строки. Перетаскивание до конца строки не будет Работа.

Примечание 2: Вы не можете копировать и вставлять их в поле самостоятельно.

Расширенный поиск (Ctrl + R) без regexp

Ctrl + M вставит что-то, что соответствует новостным линиям. Они будут заменены сменной строкой.

Комментарии (2)

В диалоговом окне "Замена" установите режим поиска "Расширенный". Обычный режим или режим регулярного выражения работать не будут.

Затем просто найдите "\r\n" (или просто \n для файлов unix или просто \r для файлов формата mac) и установите замену на то, что вам нужно.

Комментарии (2)

Мне не очень повезло с регулярными выражениями \ r \ n из окна поиска / замены.

Однако это работает в Notepad ++ v4.1.2:

  1. Используйте меню «Просмотр | Показать конец строки», чтобы включить отображение символов конца строки. (Потоки обратной линии перевозки должны отображаться как один заштрихованный «символ» CRLF.)

  2. Выберите один из «персонажей» CRLF (поместите курсор прямо перед одним, удерживайте клавишу SHIFT, а затем нажмите клавишу RIGHT CURSOR один раз).

  3. Скопируйте символ CRLF в буфер обмена.

  4. Убедитесь, что у вас нет открытого диалога поиска или поиска / замены.

  5. Откройте диалоговое окно поиска / замены. Поле «Найти, что» показывает содержимое буфера обмена: в данном случае символ CRLF - который отображается как 2 «коробочных символа» (предположительно, это непечатаемый символ?)

  6. Убедитесь, что опция «Регулярное выражение» выключена

Теперь вы сможете считать, находить или заменять по желанию.

Комментарии (1)

Я нашел, что это работает, используя функцию Replace и используя «\ n» в режиме «Extended». Я использую версию 5.8.5.

Комментарии (1)

В 2013 году v6.13 или более поздней версии используйте:

Меню Редактировать EOL Conversion Формат Windows .

Комментарии (1)

Используйте опцию расширенного поиска ( Ctrl < / kbd > + / kbd >) и используйте сочетание клавиш для CRLF ( Ctrl < / kbd > + < карета> M / к.

Комментарии (1)

Перейти к View - > Показать символ - > Показать все символы // Это сработало для меня

Комментарии (0)

Если вам нужно выполнить сложную замену regexp, включая \ r \ n, вы можете обойти ограничение с помощью трехступенчатого подхода:

  1. Замените все \ r \ n тегом, скажем, # GO #→ Проверить «Расширенный», заменить \ r \ n на # GO #
  2. Выполните свой regexp, например, удалите многострочный ICON = "*"из HTML-закладок → Проверьте regexp, заменитеICON =.[^ "] +.> >
  3. Верните \ r \ n → Проверьте «Расширенный», замените # GO # на \ r \ n
Комментарии (0)

Предполагая, что в нем есть поиск "регулярных выражений", найдите \r\n. Я предпочитаю \r?\n, потому что в некоторых файлах не используются возвраты каретки.

EDIT: Спасибо за отзывы, кто бы ни проголосовал за это. Я узнал, что... ну, ничего, потому что вы не оставили отзывов. Почему это неправильно?

Комментарии (2)

Я открыл файл в Notepad ++ и сделал замену в несколько шагов:

  1. Заменить все "\ r \ n" на "\ r \ n"
  2. Заменить все "; \ r \ n" на "\ r \ n"
  3. Заменить все "\ r \ n" на ""

Это помещает все разрывы, где они должны быть, и удаляет те, которые разбивают файл.

Это сработало для меня.

Комментарии (0)

Сделайте эту настройку. Меню- > Вид- > Показать символ- > снять флажок Показать конец строки

Комментарии (1)

Я был совершенно не в состоянии сделать это в NP v6.9. Мне было достаточно легко на Msoft Word (2K).

Откройте документ, перейдите к редактированию > заменить.

Затем в нижней части окна поиска нажмите «больше», затем найдите кнопку «Специальный», и у них есть несколько вещей для вас. Для стиля Дос я использовал «параграф». Это пара в окнах земли.

Комментарии (0)

Чтобы изменить документ отдельных строк на одну строку, каждая строка образует одну запись в списке, разделенном запятыми:

  1. ctrl < / kbd > + f < / kbd > открыть поиск / пополнение.
  2. Нажмите вкладку «Заменить».
  3. Заполните запись «Найти что» с помощью «\ r \ n».
  4. Заполните запись «Заменить на» на «,» или «,» (в зависимости от предпочтений).
  5. Снимите флажок «Сопоставить целое слово» (важный бит, который ускользает от логики).
  6. Проверьте «Расширенную» радиокнопку.
  7. Нажмите кнопку «Заменить все».

Эти шаги поворачиваются например,.

Foo бар

бар база

Баз Фу

в:

фу бар, бар база, базу фу

или: (в зависимости от предпочтений)

фу бар, бар база, баз фу

Комментарии (0)

Чтобы найти любой вид последовательности разрыва строки , используйте следующую конструкцию regex:

\R

Чтобы найти и выбрать последовательные последовательности разрывов строк, добавьте + после \ R: \ R +.

Убедитесь, что вы включили Регулярное выражение режим:

Это соответствует:

  • U + 000DU + 000A - последовательность CRLF
  • U + 000A - LINE FEED, LF
  • U + 000B - LINE TABULATION, VT
  • U + 000C - FORM FEED, FF
  • U + 000D - CARRIAGE RETURN, CR
  • U + 0085 - NEXT LINE, NEL
  • U + 2028 - LINE SEPARATOR
  • U + 2029 - PARAGRAPH SEPARATOR
Комментарии (0)

Может быть, вы можете использовать плагины TextFX

В TextFX перейдите в textfx edit → удалите пустые строки

Комментарии (0)

Просто сделайте \ r с функцией поиска и замените ее на пробел в поле замены, чтобы все шло в одну строку. Затем найдите и замените (в моем случае полуколонной) и замените на; \ n

:) -T & C

Комментарии (1)