Как я могу найти/заменить все символы CR/LF в Notepad++?
Я ищу что-то эквивалентное специальному символу ^ p в Microsoft Word.
Как я могу найти/заменить все символы CR/LF в Notepad++?
Я ищу что-то эквивалентное специальному символу ^ p в Microsoft Word.
[\r\n]+
тоже должен работать
Обновление 26 марта 2012 года, дата выпуска Notepad ++ 6.0:
OMG, он действительно работает сейчас!!!
Оригинальный ответ 2008 (Notepad ++ 4.x) - 2009-2010-2011 (Notepad ++ 5.x)
На самом деле нет, он не работает с regexp...
Но если у вас есть Notepad ++ 5.x, вы можете использовать режим поиска расширенный 'и искать \r\n
. Это находит все ваши CRLF
.
(Я понимаю, что это тот же ответ, что и другие, но опять же, "расширенный режим" доступен только с Notepad ++ 4.9, 5.x и более)
С апреля 2009 года у вас есть статья wiki на сайте Notepad ++ по этой теме:
" Как заменить концы строк, тем самым изменив макет строки".
(упомянутый georgiecasey в его/ее ниже)
Некоторые соответствующие выдержки включают следующие процессы поиска:
Простой поиск (Ctrl+ F), Режим поиска =
Normal
Вы можете выбрать
EOL
в окне редактирования.
- Просто переместите курсор в конец строки и введите Shift + Right Arrow.
- или, чтобы выбрать
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) без регулярного выраженияCtrl + M будет вставлять что-то, что соответствует символам новой строки. Они будут заменены на строку замены.
Я рекомендую этот метод как самый надежный, если вам действительно не нужно использовать регулярное выражение.
В качестве примера, чтобы удалить каждую вторую строку новой строки в двустрочном файле, дважды введите Ctrl + M в строку строки поиска и один раз в поле строки замены.Расширенный поиск (Ctrl + R) с Regexp.
Ни Ctrl + M,
$
, ни\r\n
не совпадают.
В той же wiki также упоминается альтернатива Hex editor:
- Введите новую строку в начале документа.
- Затем выберите просмотр документа в шестнадцатеричном режиме.
- Выберите одну из новых строк и нажмите Ctrl + H.
- Пока у вас есть диалоговое окно "Заменить" вверх, выберите в фоновом режиме новую строку замены и Ctrl + C скопировать ее, чтобы вставить ее в "Заменить" с помощью текстового ввода.
- Затем замените или замените все по своему усмотрению.
Примечание: символ, выбранный для новой строки, обычно отображается как
0a
.
Это может иметь другое значение, если файл находится в формате Windows. В этом случае вы всегда можете перейти наEdit -> EOL Conversion -> Convert to Unix Format
, а после замены заменить его иEdit -> EOL Conversion -> Convert to Windows Format
.
Похоже, что это FAQ, и предлагаемое разрешение:
Простой поиск (Ctrl + H) без регулярного выражения
Вы можете включить View/Show End of Line или просмотреть/Показать все и выбрать видимые символы новой строки. Тогда, когда вы запускаете команду некоторыми символами соответствие символа новой строки будет вставлен в поле поиска. Матчи будет заменена заменой строка, в отличие от режима регулярного выражения.
Примечание 1: Если вы выберете их с помощью мышь, начните перед ними и перетащите к началу следующей строки. Перетаскивание до конца строки не будет Работа.
Примечание 2: Вы не можете копировать и вставлять их в поле себя.
Расширенный поиск (Ctrl + R) без регулярного выражения
Ctrl + M вставляет что-то, что соответствует символам новой строки. Они будут заменены на строку замены.
В диалоговом окне "Заменить" вы хотите установить режим поиска "Extended". Нормальные или регулярные режимы выражения не будут работать.
Затем просто найдите "\ r\n" (или просто \n для файлов unix или просто \r для файлов формата Mac) и установите замену на все, что вы хотите.
Мне не повезло с регулярными выражениями из окна поиска/замены.
Однако это работает в Notepad ++ v4.1.2:
Используйте меню "Показать | Показать конец строки", чтобы включить отображение символов конца строки. (Каналы возврата каретки должны отображаться как один затушеванный символ CRLF.)
Выберите один из символов CRLF (поместите курсор прямо перед ним, удерживайте клавишу SHIFT, а затем один раз нажмите клавишу RIGHT CURSOR).
Скопировать символ CRLF в буфер обмена.
Убедитесь, что диалоговое окно find или find/replace не открывается.
Откройте диалог поиска/замены. В поле "Найти что" отображается содержимое буфера обмена: в этом случае символ CRLF, который отображается как 2 "полевые символы" (предположительно это непечатаемый символ?)
Убедитесь, что параметр "Регулярное выражение" выключен.
Теперь вы можете рассчитывать, находить или заменять по желанию.
Изображение с CRLF
Изображение без CRLF
Как я его нашел, это использовать функцию Replace и использовать "\n" в режиме "Extended". Я использую версию 5.8.5.
В 2013 году, v6.13 или новее, используйте:
Меню Правка → Преобразование EOL → Формат Windows.
Предполагая, что у него есть поиск "регулярных выражений", найдите \r\n. Я предпочитаю \r?\N, потому что некоторые файлы не используют возврат каретки.
EDIT: Спасибо за отзывы, кто бы ни проголосовал за это. Я узнал, что... ну, ничего, потому что вы не дали никакой обратной связи. Почему это неправильно?
Используйте функцию расширенного поиска (Ctrl + R) и используйте сочетание клавиш для CRLF (Ctrl + M), чтобы вставить возврат каретки.
Если вам нужно выполнить сложную замену регулярного выражения, включающую \r\n, вы можете обойти ограничение с помощью трехэтапного подхода:
\r\n
тегом, скажем, #GO#
→ Проверить 'Extended', заменить \r\n
на #GO#
ICON="*"
из html-закладок → Проверьте регулярное выражение, замените ICON=.[^"]+.> by >
#GO#
на \r\n
Перейдите на View--> Показать symbol--> Показать всех персонажей//Это сработало для меня
Я открыл файл в Notepad++ и сделал замену в несколько шагов:
Это помещает все разрывы, где они должны быть, и удаляет те, которые разбивают файл.
Это сработало для меня.
Сделайте эту настройку. Меню- > Вид- > Показать символ- > снимите флажок Показывать конец строки
Я был совершенно не в состоянии сделать это в NP v6.9. Я нашел это достаточно легко на Microsoft Word (2K).
Откройте документ, перейдите к edit-> заменить.
Затем в нижней части окна поиска нажмите "еще", затем найдите кнопку "Специальные", и у них есть несколько вещей для вас. Для стиля Dos я использовал "параграф". Это пара в земле.
Чтобы изменить документ отдельных строк в одну строку, каждая строка формирует одну запись в списке, разделенном запятыми:
\r\n
".,
" или ",
" (в зависимости от предпочтения).Эти шаги включают, например,
foo bar
bar baz
baz foo
в
foo bar, bar baz, baz foo
или: (в зависимости от предпочтения)
foo bar, bar baz, baz foo
Может быть, вы можете использовать плагины TextFX
В TextFX перейдите к редактированию textfx → удалите пустые строки
Просто сделайте a\r с помощью find и замените пробел в поле replace, чтобы все было в одной строке. Затем выполните поиск и замените (в моем случае - на двоеточие) и замените на:\n
:) -T & С
Чтобы найти любой вид последовательности разрыва строки, используйте следующую конструкцию регулярного выражения:
\R
Чтобы найти и выбрать последовательные последовательности разрыва строки, добавьте +
после \R
: \R+
.
Убедитесь, что вы включили режим регулярных выражений:
Это соответствует:
U+000DU+000A -
CRLF 'последовательностьU+000A
- LINE FEED
, LFU+000B
- LINE TABULATION
, VTU+000C
- FORM FEED
, FFU+000D
- CARRIAGE RETURN
, CRU+0085
- NEXT LINE
, NELU+2028
- LINE SEPARATOR
U+2029
- PARAGRAPH SEPARATOR