Как удалить определенные строки в Notepad ++?

94

Я очищаю некоторые файлы кода (C #) и хочу удалить регионы. И я хотел бы удалить все строки, в которых есть строка '#region'. Это всего лишь пример, и я могу придумать еще несколько вариантов использования, но возможно ли это вообще?

Rismo
источник
2
У меня есть соблазн проголосовать за то, чтобы этот вопрос был не по теме ... Это в основном вопрос о блокноте ++ и конкретном рабочем шаблоне, но не обязательно, связанный с программированием: /
Андреас Нидермайр
@AndreasNiedermair согласен
displayname

Ответы:

39

Вы можете использовать меню Search -> Replace ... ( Ctrl+ H).

Он имеет функцию регулярного выражения для замены. Вы можете использовать регулярное выражение, которое соответствует #region, а также всему, что есть в строке, и заменить его пустым пространством.

Джон Т
источник
Спасибо, я это сделал, и это работает. Но теперь я пытаюсь заменить \ n \ n только одним \ n, но, похоже, не работает, есть идеи?
Rismo
1
используйте расширенный поиск для замены escape-последовательностей (переключатель сразу над регулярным выражением)
John T
Спасибо, Джон. Я сделал это и работал с разрывом одной строки \ n, но не с двумя. Я ищу \ n \ n и заменяю его на \ n, но это не работает. Работает ли это для вас ?
Rismo
1
Если вы набрали документ в окнах, окончание строки будет \ r \ n. Окончание строк в стиле UNIX - \ n.
John T
5
Также только что заметил, что TextFx -> TextFx Edit -> Delete Surplus Blank Lines делает то же самое :)
Rismo
278

Блокнот ++ v6.5

  1. Меню поиска -> Найти ... -> вкладка « Отметить » -> Найти что: текст для поиска , отметьте строку закладок , затем отметьте все . Это пометит все строки с поисковым запросом, вы увидите синие кружки на полях.

  2. Затем меню « Поиск» -> « Закладка» -> « Удалить строки с закладками» . Это удалит все строки с закладками.

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

Старые версии

  1. Меню поиска -> Найти ... -> Найти что: текст для поиска , отметьте строку закладок и нажмите Найти все .
  2. Затем Поиск -> Закладка -> Удалить отмеченные строки
Рэй
источник
8
Спасибо! Вау, я не знал, что NP ++ делает это ... отличная экономия времени. Найти и добавить в закладки строки + удалить строки. Потрясающие. Спасибо!!
Мэтью М.
Что за хак, почему я не могу просто заменить регулярным выражением \ r \ n на "" :(
felickz
13
Это одна из тех маленьких жемчужин, которые я нахожу там, где мне хотелось бы проголосовать больше, чем 1. Я не могу сказать вам, сколько времени я потратил впустую за эти годы, не осознавая, что это было доступно! Единственная проблема в том, что теперь, я думаю, мне нужно быть более продуктивным ...
Милнер
1
Если вы ищете это. «Отметка» теперь имеет отдельную вкладку во всплывающем меню поиска.
bunnybare
1
@bunnybare, спасибо. Обновил ответ на последнюю версию.
Рэй
4

Вот способ полностью удалить строки, содержащие «ВАШ ТЕКСТ»:

  • Откройте диалоговое окно "Заменить"
  • Введите следующую строку поиска: .*YOURTEXT.*[\r]?[\n](замените YOURTEXT своим текстом)
  • Включить "Регулярное выражение"
  • Отключить ". Соответствует новой строке"

Данное регулярное выражение соответствует концу строк как в Windows, так и в Unix.

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

окрокет
источник
Почему вы используете класс персонажа для одного персонажа?
Toto
4

Это самая распространенная функция Notepad ++, которую я использую для обновления кода.

Все, что вам нужно сделать, это:

  • Выберите общую строку, которая присутствует во всех строках.
  • Нажмите Ctrl+F
  • На вкладке « Отметить » вставьте повторяющуюся строку и установите флажок « Закладка» .
  • Нажмите на Mark All
  • Теперь перейдите в меню ПоискЗакладкаУдалить строки с закладками.

Вы можете обратиться к этой ссылке для графического объяснения.

http://www.downloadorinstall.com/best-notepad-tips-and-tricks-for-faster-work-and-development/

Ришаб Пант
источник
Ссылка кажется неработающей (или, возможно, для использования требуется ужасное количество кода JavaScript).
Питер Мортенсен
2

Ответ Джейкоба Джону Т. отлично подходит для удаления всей строки, и с его помощью вы можете найти в файлах. Не забудьте проверить «Регулярное выражение» внизу.

Решение: ^.*#region.*$

Ник
источник
2
он сказал, что хочет удалить строку, а не заменить ее чем-то
felickz 07
1

Выясните, какой у вас EOL, \ n или \ r \ n. Затем .*#region.*\r\nничего не замените в режиме регулярного выражения.

Вал
источник
0

Вы можете попробовать заменить #region на \ n, включив режим расширенного поиска.

Северный полюс
источник
2
OP сказал, что хочет «удалить все строки», вы замените это новой строкой
felickz
0

Используя регулярное выражение и функцию поиска и замены, вы можете удалить все строки, содержащие #region, не оставляя пустых строк. Поскольку по какой-то причине метод Рэя не работал на моей машине, я искал (.*#region.*\n)|(\n.*#region.*)и оставил поле замены пустым.

Это регулярное выражение гарантирует, что if #regionнаходится в первой строке, завершающая новая строка удаляется, а если она находится в последней строке, предыдущая новая строка удаляется.

Тем не менее, решение Рэя лучше, если оно вам подходит.

Джордж
источник