Как удалить строки после: если значение> 5 в Notepad ++ или Python

346
Vansy88

Надеюсь, кто-то может помочь. Я пытаюсь удалить любую строку, которая имеет 5 или менее символов после:

Например :

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

Я пытался решить эту проблему часами с помощью блокнота ++, так как я только изучаю Python, я застрял, очень ценю любую помощь.

0
Вы хотите удалить целые строки или только то, что есть после двоеточия? Toto 5 лет назад 0

2 ответа на вопрос

3
Worthwelle

В диалоговом окне «Замена блокнота ++» используйте регулярное выражение, ^[^:]*:.$как показано ниже:

Блокнот ++ Заменить диалог

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

Если вы хотите удалить всю строку:

  • если у вас нет пустых строк, которые нужно сохранить, используйте EditLine OperationsRemove Empty Lines.

  • если у вас есть пустые строки, которые нужно сохранить, используйте ^[^:]*:.\r?\nвместо этого. Это не будет работать в самой последней строке, так как в нем не будет символов новой строки. Чтобы использовать это, вам также необходимо установить флажок . matches newlineрядом с переключателем «Регулярное выражение».

3
harrymc

Я предполагаю, что нам нужно посчитать все символы после :и до конца строки.

Используйте диалоговое окно «Найти» на вкладке «Пометить», чтобы пометить все с помощью регулярного выражения:

:(.+) 

Это пометит все строки, которые вы хотите сохранить, где у нас есть как минимум 6 символов после :. Визуально убедитесь, что ошибки нет.

Затем используйте пункт меню « Поиск»> «Закладка»> «Удалить неотмеченные строки» .

Почему `(. +) ` лучше, чем просто `. `? Máté Juhász 5 лет назад 1
@ MátéJuhász: Верно - они эквивалентны в этом случае. Я использовал `+` по привычке, потому что он жадный, но `` здесь делает это ненужным. harrymc 5 лет назад 1