Notepad ++ Удалить шаблон новой строки - Найти и заменить команду?

683
BecauseICanTBH

Я хочу удалить новую строку, созданную после каждого имени в файле журнала чата. Пример:

Person1:[space] their message Person2:[space] their message 

Поэтому я установил расширенный поиск в Find & Replace и ищу строку:

: \r 

И установите его на:

:[space] 

Он находит примеры этого, которые я ищу, но по какой-то причине он не возвращает текст из новой строки при замене - и говорит, что он был успешно заменен. Я попытался удалить пробел из замещающего текста, и он убрал пробелы, но все равно не увеличил текст на одну строку.

Какие-либо предложения?

2
Нет никакой гарантии, что последние символы сообщения пользователя не являются `: [пробел]`. Но я не вижу способа различить, является ли эта подстрока хвостом заголовка или хвостом сообщения ... Является ли `PersonN: [пробел]` реальным содержимым заголовка или оно выглядит как `John: [пробел]` ? Akina 5 лет назад 0
Потому что ICanTBH - см. [Принятие ответа] (https://i.imgur.com/OZho1tT.png), чтобы убедиться, что вы понимаете, как это работает для решения, которое вы найдете, для любых ответов, которые помогут вам решить вашу проблему, просто отметив небольшую серую установите флажок в верхней левой части ответа, который решает вашу проблему, если решить проблему, и установите его зеленым, чтобы показать, что ответ принят, поскольку именно так это должно работать; Вы задаете вопрос, вы получаете ответы, и если вы получаете ответ, который отвечает вашим потребностям, вы просто принимаете этот ответ. Pimp Juice IT 5 лет назад 0

3 ответа на вопрос

3
fejyesynb

Найти : \r\nи заменить на:[space]

Вам нужно найти возврат каретки (CR) и перевод строки (LF).

1
Toto
  • Ctrl+H
  • Найти то, что: :\h+\R
  • Заменить на: : (точка с запятой, затем пробел)
  • проверить обернуть
  • проверьте регулярное выражение
  • Replace all

Объяснение:

: : a semicolon \h+ : 1 or more horizontal spaces \R : any kind of linebreak (ie. \n, \r or \r\n) 

Результат для данного примера:

Person1: their message Person2: their message  
0
Anaksunaman

Как уже упоминалось в другом ответе, вам нужно перейти \rна \r\n. Это связано с тем, что Windows использует комбинацию возврата каретки ( CRв Notepad ++ или \r) и перевода строки ( LFв Notepad ++ или \n) для обозначения новых строк.

Что касается вашей проблемы, Notepad ++ относится к замене \rбуквально (так что ваша последняя замена на самом деле [space] \n). А поскольку другие операционные системы используют либо одинарный \n(Linux), либо \r(по умолчанию MacOS, если я не ошибаюсь) для символов «новой строки», Notepad ++ также обрабатывает их таким же образом (то есть представляет их как разрывы строк, следовательно, нет «неровностей»). ).

Заметки

  • Если вам когда-либо понадобится увидеть символы форматирования (табуляции, пробелы, конец строки), вы можете использовать Вид> Показать символ, чтобы увидеть их.

  • Убедитесь в том, чтобы иметь Extendedили Regular expressionотметить Search Modeпри замене.

Похожие вопросы