Как найти/заменить все символы CR/LF в Notepad++?
Я ищу что-то эквивалентное специальному символу ^p в Microsoft Word.
[\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
.
Похоже, что это FAQ, и предлагаемое разрешение:
Простой поиск (Ctrl + H) без regexp
Вы можете включить View / Show End of Line или просмотреть / Показать все, и выберите сейчас видимые символы новой строки. Тогда когда Вы запускаете команду некоторых символов сопоставление символа новой строки будет вставил в поле поиска. Матчи будет заменен заменой строка, в отличие от режима регулярного выражения.
Примечание 1: Если вы выберете их с мышь, начни прямо перед ними и перетащи к началу следующей строки. Перетаскивание до конца строки не будет Работа.
Примечание 2: Вы не можете копировать и вставлять их в поле самостоятельно.
Расширенный поиск (Ctrl + R) без regexp
Ctrl + M вставит что-то, что соответствует новостным линиям. Они будут заменены сменной строкой.
В диалоговом окне "Замена" установите режим поиска "Расширенный". Обычный режим или режим регулярного выражения работать не будут.
Затем просто найдите "\r\n" (или просто \n для файлов unix или просто \r для файлов формата mac) и установите замену на то, что вам нужно.
Мне не очень повезло с регулярными выражениями \ r \ n из окна поиска / замены.
Однако это работает в Notepad ++ v4.1.2:
Используйте меню «Просмотр | Показать конец строки», чтобы включить отображение символов конца строки. (Потоки обратной линии перевозки должны отображаться как один заштрихованный «символ» CRLF.)
Выберите один из «персонажей» CRLF (поместите курсор прямо перед одним, удерживайте клавишу SHIFT, а затем нажмите клавишу RIGHT CURSOR один раз).
Скопируйте символ CRLF в буфер обмена.
Убедитесь, что у вас нет открытого диалога поиска или поиска / замены.
Откройте диалоговое окно поиска / замены. Поле «Найти, что» показывает содержимое буфера обмена: в данном случае символ CRLF - который отображается как 2 «коробочных символа» (предположительно, это непечатаемый символ?)
Убедитесь, что опция «Регулярное выражение» выключена
Теперь вы сможете считать, находить или заменять по желанию.
В 2013 году v6.13 или более поздней версии используйте:
Меню Редактировать → EOL Conversion → Формат Windows .
Используйте опцию расширенного поиска ( Ctrl < / kbd > + / kbd >) и используйте сочетание клавиш для CRLF ( Ctrl < / kbd > + < карета> M / к.
Перейти к View - > Показать символ - > Показать все символы // Это сработало для меня
Если вам нужно выполнить сложную замену regexp, включая \ r \ n, вы можете обойти ограничение с помощью трехступенчатого подхода:
\ r \ n
тегом, скажем, # GO #
→ Проверить «Расширенный», заменить \ r \ n
на # GO #
ICON = "*"
из HTML-закладок → Проверьте regexp, заменитеICON =.[^ "] +.> >
# GO #
на \ r \ n
Предполагая, что в нем есть поиск "регулярных выражений", найдите \r\n. Я предпочитаю \r?\n, потому что в некоторых файлах не используются возвраты каретки.
EDIT: Спасибо за отзывы, кто бы ни проголосовал за это. Я узнал, что... ну, ничего, потому что вы не оставили отзывов. Почему это неправильно?
Я открыл файл в Notepad ++ и сделал замену в несколько шагов:
Это помещает все разрывы, где они должны быть, и удаляет те, которые разбивают файл.
Это сработало для меня.
Сделайте эту настройку. Меню- > Вид- > Показать символ- > снять флажок Показать конец строки
Я был совершенно не в состоянии сделать это в NP v6.9. Мне было достаточно легко на Msoft Word (2K).
Откройте документ, перейдите к редактированию > заменить.
Затем в нижней части окна поиска нажмите «больше», затем найдите кнопку «Специальный», и у них есть несколько вещей для вас. Для стиля Дос я использовал «параграф». Это пара в окнах земли.
Чтобы изменить документ отдельных строк на одну строку, каждая строка образует одну запись в списке, разделенном запятыми:
\ r \ n
».,
» или «,
» (в зависимости от предпочтений).Эти шаги поворачиваются например,.
Foo бар
бар база
Баз Фу
в:
фу бар, бар база, базу фу
или: (в зависимости от предпочтений)
фу бар, бар база, баз фу
Чтобы найти любой вид последовательности разрыва строки , используйте следующую конструкцию regex:
\R
Чтобы найти и выбрать последовательные последовательности разрывов строк, добавьте +
после \ R
: \ R +
.
Убедитесь, что вы включили Регулярное выражение режим:
Это соответствует:
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
Может быть, вы можете использовать плагины TextFX
В TextFX перейдите в textfx edit → удалите пустые строки