Найти CRLF в Notepad++

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

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

15 ответов


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

обновление 26 марта 2012 года, Дата выпуска Блокнот++ 6.0:

OMG, это действительно работает сейчас!!!

PCRE regexp in Notepad++


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

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

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

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


С апреля 2009 года у вас есть статья wiki на сайте Notepad++ по этой теме:
"как заменить концы строк, тем самым изменив макет строки".
(упомянутые georgiecasey в своем ответ ниже)

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

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

выберите EOL в окне редактирования.

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

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

опция "Extended" показывает \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 вставить какое-то строки. Они будут заменены строкой replace.
Я рекомендую этот метод как самый надежный, если вам действительно не нужно использовать регулярное выражение.
Например, чтобы удалить каждую вторую новую строку в файле с двойным интервалом, введите Ctrl+M дважды в строке поиска и один раз в поле заменить строку.

расширенный поиск (Ctrl+R) с помощью регулярных выражений.

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


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

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

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


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

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

вы можете включить Вид / Показать конец линии или просмотреть / показать все и выбрать сейчас видимые символы новой строки. Тогда когда вы запускаете команду некоторые символы соответствующий символ будет вставить в поле поиска. Спички будет заменен заменой строка, в отличие от regex режим.

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

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

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

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


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

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


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

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

  1. используйте меню "Вид / Показать конец строки", чтобы включить отображение символов конца строки. (Каналы возврата каретки должны отображаться как один затененный символ CRLF.)

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

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

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

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

  6. обеспечить что параметр "регулярное выражение" выключен.

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


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


Изображение с CRLF

enter image description here


изображение без CRLF

enter image description here


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

меню редактироватьпреобразование EOLФормат Windows.


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

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


используйте опцию "расширенный поиск" ( Ctrl + R) и используйте сочетание клавиш для CRLF ( Ctrl + M) для вставки возврата каретки.


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

  1. заменить все \r\n по тегу, скажем #GO# → проверить 'Extended', заменить \r\n by #GO#
  2. выполните регулярное выражение, например, удаление многострочного ICON="*" из закладок html → проверить регулярное выражение, заменить ICON=.[^"]+.> by >
  3. Put back \r\n → Check 'Extended', replace #GO# by \r\n

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

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

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

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


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


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

  1. ctrl+f открыть поиск/замена.
  2. перейдите на вкладку "заменить".
  3. заполните" найти что " запись с "\r\n".
  4. заполните" заменить на " запись с "," или "," (в зависимости от предпочтений).
  5. снимите флажок "слово целиком" флажок (важный момент, который ускользает от логики).
  6. Проверьте переключатель" Extended".
  7. Нажмите кнопку" Заменить все".

эти шаги свою очередь например

Василий Пупкин

бар Базом

баз ФОО

в:

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

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

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


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

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


просто сделайте A \r с помощью find и замените пробелом в поле replace, чтобы все дошло до одной строки. Затем найдите и замените (в моем случае полу двоеточием) и замените на; \n

:) - T & C