Як видалити рядки після: якщо значення> 5 в Notepad ++ або Python


0

Сподіваючись, що хтось може допомогти. Я намагаюся видалити будь-який рядок, який має 5 або менше символів після:

Наприклад :

test:test
test:test12 (would be the only line kept)
cobra:abcd

Я годинами намагався вирішити це за допомогою блокнота ++, оскільки я лише вивчаю пітон, який я застряг, дуже ціную будь-яку допомогу.


Ви хочете видалити цілі рядки або лише те, що є після двокрапки?
Toto

Відповіді:


3

Я припускаю, що нам потрібно порахувати всі символи після :і до кінця рядка.

Використовуйте діалогове вікно "Знайти" на вкладці "Позначити", щоб позначити всіх, використовуючи регулярний вираз:

:(.+){6,}

Це позначить усі рядки, які ви хочете зберегти, де у нас є щонайменше 6 символів після :. Перевірте візуально, що помилки немає.

Потім скористайтеся пунктом меню Пошук> Закладка> Видалити немарковані рядки .


1
Чому (.+){6,}краще, ніж просто .{6,}?
Máté Juhász

1
@ MátéJuhász: Правильно - в цьому випадку вони рівноцінні. Я звикла +за звичкою, тому що вона жадібна, але {6,}тут вона робить непотрібною.
harrymc

3

У діалоговому вікні «Блокнот ++ Замінити» використовуйте регулярне вираження, ^[^:]*:.{0,5}$як показано нижче:

Діалогове вікно «Блокнот ++»

Цей регулярний вираз буде відповідати першому екземпляру :символу та ігнорувати будь-які, що з’являються пізніше в рядку.

Якщо ви хочете видалити весь рядок:

  • якщо у вас немає порожніх рядків, які вам потрібно зберегти, скористайтеся EditLine OperationsRemove Empty Lines.

  • якщо у вас є порожні рядки, які вам потрібно зберегти, скористайтеся ^[^:]*:.{0,5}\r?\nнатомість. Це не буде працювати в останньому рядку, оскільки це не буде символів нової лінії. Щоб скористатися цим, вам також знадобиться перевірити . matches newlineпараметр біля перемикача "Регулярний вираз".

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