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


94

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


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находится в первой строке, завершающая новая строка удаляется, а если она находится в последней строке, предыдущая новая строка удаляется.

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

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