Заменить новые строки запятыми с помощью Notepad ++?


165

У меня есть вопрос Notepad ++.

Как я могу взять следующие слова в Notepad ++ (который находится на разных строках)

Apples
Apricots
Pear
Avocados
Bananas

И превратить их в абзац с запятой в конце каждого? Как это:

Apples, Apricots, Pear, Avocados, Bananas

Ответы:


325

Откройте диалог поиска и замены (нажмите CTRL+ H).

Затем выберите Regular expressionв разделе «Режим поиска» в нижней части.

В Find whatполе введите это:[\r\n]+

В Replace with:

После запятой есть пробел.

Это также заменит такие строки, как

Apples

Apricots
Pear

Avocados
Bananas

Там, где есть пустые строки.

Если в ваших строках есть пробелы, вы должны удалить их в первую очередь. Самый простой способ добиться этого

EDIT -> Blank Operations -> Trim Trailing Space

ИЛИ

TextFX -> TextFX Edit -> Trim trailing spaces

Обязательно установите режим поиска на «Регулярное выражение».


Если на линии есть пробелы, вы можете _*[\r\n]+. Чтобы справиться с пустыми строками, превращенными в лишние запятые, вы можете выполнить поиск ,_[,_]+и заменить его на регулярное выражение ,_. Кроме того, пакет TextFx имеет команду удаления пустых строк, которую можно использовать перед добавлением запятых. (Заметьте, что подчеркивание подчеркивает пробелы в этих блоках кода.)
AdrianHHH

да вы очень правы Я просто пытался дать минималистичный ответ. Может быть, я должен отредактировать ответ тогда.

2
Это не работает для меня: я вижу "0 случаев были заменены".
Иэн Самуэль Маклин, старейшина

3
@IainElder, режим поиска должен быть установлен на «Регулярное выражение» вместо «Нормальный» или «Расширенный».
Скотт Лоуренс

У меня был тот же результат, что и у Иэйна.
Дхочее

34

Вот что сработало для меня с подобным списком строк в Notepad ++ без каких-либо макросов или чего-либо еще:

  1. Нажмите Edit -> Blank Operations -> EOL to space [Все элементы теперь должны быть в одной строке, разделенной «пробелом»]

  2. Выберите любой «пробел» и выполните «Заменить все» («,»)


Просто и элегантно, красиво
reggaeguitar

@trishul Действительно Хорошо.
himanshupareek66

32

Ответ fapDaddy с использованием макроса указал мне правильное направление.

Вот именно то, что сработало для меня.

  1. Поместите курсор после первого элемента данных. введите описание изображения здесь

  2. Нажмите «Макрос> Начать запись» в меню. введите описание изображения здесь

  3. Введите эту последовательность: Comma, Space, Delete, End.введите описание изображения здесь

  4. Нажмите «Макрос> Остановить запись» в меню. введите описание изображения здесь

  5. Нажмите «Макрос> Выполнить макрос несколько раз ...» в меню. введите описание изображения здесь

  6. Нажмите «Выполнить до конца файла» и нажмите «Выполнить». введите описание изображения здесь

  7. Удалите все символы в конце. введите описание изображения здесь

  8. Готово!

введите описание изображения здесь


5
Этот метод медленный для тысяч элементов данных.
Иэн Самуэль Маклин, старейшина

Отличный ответ. Спасибо :)
Питер Т.

Такая отличная информация, будет полезна во многих подобных ситуациях. Спасибо!
Моин

Спасибо за обмен информацией. Это интересно.
Железный человек

4

Для Блокнота ++ 5,9

  1. Нажмите Ctrl + H
  2. Выберите режим поиска Расширенный (\ n, \ r, \ t, \ o, \ x ...)
  3. Введите Найти что: \ r \ n
  4. Введите Заменить: ,
  5. Replace_All должен получить требуемый результат.

3
Этот ответ повторяет принятый ответ, и этот ответ относится к античной версии Notepad ++, теперь доступна версия 7.4.x. Добро пожаловать в Stack Overflow, но, пожалуйста, ответьте на вопрос, предоставьте новую информацию или дайте новое представление. Повторять существующие ответы бесполезно.
AdrianHHH

Для более новых версий npp это лучший способ.
нурдыгуй

Это самый простой ответ. Мне не нужно переходить в режим регулярных выражений, чтобы заменить символы новой строки запятыми. N ++ на самом деле работает правильно, тогда как другие редакторы интерпретируют "\ n" как возврат каретки И перевод строки, что сначала смутило меня.
BrianVPS

3

Наведите курсор на « Яблоки» , под вкладкой «Макрос» выберите « Начать запись» . Введите запятую ( , ), пробел () и нажмите клавишу « Конец». На вкладке «Макрос» выберите « Остановить запись» .

Ctrl + Shift + P для одиночного воспроизведения.


Спасибо за этот совет. Что если у меня будет 5000 ++ слов? Нужно ли запускать макрос для каждого из них в отдельности? Есть ли более простой способ?
user2231530

Если вам придется выполнить аналогичную задачу в будущем, вы можете написать скрипт для нее. Самый простой выход - просто перейдите на вкладку Macro и выберите несколько раз запустить макрос. Это будет сделано в считанные секунды.
Viclim

+1 Ваш ответ указал мне правильное направление. В своем ответе я задокументировал, что именно сработало для меня.
Иэн Сэмюэль Маклин, старейшина

2

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

шаг 1

шаг 2


1
Пожалуйста, улучшите этот ответ. Ссылки на изображения не будут полезны.
Дрю

2

ИСПОЛЬЗОВАТЬ Панель поиска Chrome

1-нажатие CTRL F
2-вставка скопированного текста в строке поиска
3-нажатие, CTRL Aа затем CTRL Cдля повторного копирования текста из поиска
4-вставка в Notepad ++
5-заменить 'space'на','

1 клик для изображения
2-клик для изображения


0

Вы можете использовать командную строку cc.rnl ', 'ConyEdit (плагин), чтобы заменить новые строки нужным вам содержимым.


0

Для \s+меня сработало регулярное выражение :

введите описание изображения здесь


Кстати: мне кажется, что регулярное выражение $^должно работать, но вместо этого оно совпадает ^$.
user3673

Использование опции «Расширенные» прямо над опцией «Регулярное выражение» (на вашем снимке экрана) на самом деле является самым простым способом сделать это.
нурдыгуй
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.