Як видалити рядки без "." в Блокноті ++? [дублікат]


12

У Notepad ++ у мене багато рядків у форматі:

abc.xyz

де "abc" може мати пробіл або - або числа.

Як видалити рядки без "."? Тож якщо для рядка немає жодного ".", Я хочу його повністю видалити, навіть не залишати порожній рядок.

Відповіді:


40

Як видалити рядки без .?

  • Меню "Пошук"> "Замінити" (або Ctrl+ H)

  • Встановіть "Знайти що" ^[^\.]*\r\n

    • Ви можете замінити \r\nна різні EOL (кінець рядка) регулярні вирази залежно від EOL у вашому файлі (див. "У мене інший EOL у своєму файлі. Що я можу зробити?" Та "Мені все одно, які EOL використовує мій файл , що я можу зробити? "нижче).
  • Очистити "Замінити на"

  • Увімкнути "Регулярний вираз"

  • Натисніть "Замінити все"

    Зображення

Примітки:

  • Вищенаведене передбачає, що останній рядок у файлі має кінцевий EOL.

  • Вищесказане також передбачає , що ви редагуєте текстовий файл з EOL в Windows, \r\n.

Перед :

abc.xyz
abcdef
abc 123.xyz
abc 123def

Після :

abc.xyz
abc 123.xyz

У мене в файлі інший EOL, що я можу зробити?

  • Windows EOL є \r\n.

  • Якщо ви використовуєте файли з іншим EOL, ви можете конвертувати їх у Windows EOL за допомогою меню "Редагувати"> "Перетворення EOL".

  • Якщо ви не працюєте з Windows EOL і не хочете їх конвертувати, скористайтеся наступним:

    • Використовуйте \nзамість \r\nEOL для Unix / OS X

    • Використовуйте \rзамість EOS \r\nдля Mac OS (до версії 9)


Я не знаю або мені все одно, що використовує мій файл EOL, що я можу зробити?

  • Ви можете використовувати \Rабо (?:\r\n?|\n)чи (?:\r?\n?)замість \r\n. Це дозволяє усунути будь-яку проблему з фактично використовуваними у файлі EOL.

  • Ви також можете використовувати (?:\r?\n?|$). Цей вираз буде працювати, якщо в останньому рядку файлу немає EOL.


Подальше читання


5
Ви можете використовувати \ R, щоб відповідати будь-якому рядку лінії.
користувач694733

@ user694733 Будь ласка, поясніть? \rне відповідає EOL для Windows. Якщо ви видалите, у \nвас залишаються порожні рядки. ОП заявив: "Я хочу його повністю видалити, навіть не залишати порожній рядок".
DavidPostill

У верхньому регістрі R. N ++ використовується PCRE, який має це особливий клас символів, якщо моя пам'ять слугує мені правильно.
користувач694733

@ user694733 Ага. ГАРАЗД. Випробував це і він працює.
DavidPostill

regex101.com - кращий сайт для вивчення regex, ніж regexexr
кіт

14

Прийнята відповідь правильна, але ви не завжди будете готові регулярні вирази. Тому я представляю більш просте рішення.

  1. Ctrl+ F- натисніть на вкладку Позначити
  2. Встановіть "Знайти що" .
  3. Поставте прапорець "Лінія закладок" (люб'язно надано Wrass)
  4. Режим пошуку = Нормальний
  5. Клацніть Позначити всі -> Поруч із номерами рядків із закладками ви побачите синє коло.
  6. Потім перейдіть до Пошук меню -> Закладка -> Видалити немарковані лінії.

Це приємна проста альтернатива, однак, можливо, ви хочете зазначити, що ви також повинні перевірити опцію "Рядок закладок" у діалоговому вікні "Позначити". Якщо цього не зробити, це призведе до видалення всіх рядків.
Wrass

Добрий момент, мій блокнот запам'ятав це з минулого разу, тому я забув про це.
Zikato

Я постійно використовую регулярний вираз, але я все одно використовую цей метод для його простоти. Відмова: Я також дуже часто використовую різні функції закладок у Блокноті ++.
JPhi1618

Оскільки ви були незадоволені своїм форматуванням, я надіслав редагування, яке, на мою думку, вам буде приємніше. Не соромтесь відхилити його або відкотити назад, якщо ви не погоджуєтесь.
jpmc26
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.