Jak usunąć linie bez „.” w Notepad ++? [duplikować]


12

W Notepad ++ mam wiele wierszy w formacie:

abc.xyz

gdzie „abc” może mieć spację lub - lub cyfry.

Jak usunąć linie bez „.”? Więc jeśli linia nie ma żadnego „.”, Chcę, aby została całkowicie usunięta, nawet nie zostawiaj pustej linii.

Odpowiedzi:


40

Jak usunąć linie bez .?

  • Menu „Szukaj”> „Zamień” (lub Ctrl+ H)

  • Ustaw „Znajdź co” na ^[^\.]*\r\n

    • Możesz zastąpić \r\ninnymi wyrażeniami regularnymi EOL (End of Line) w zależności od EOL w twoim pliku (patrz „Mam inne EOL w moim pliku, co mogę zrobić?” I „Nie dbam o to, jakie EOLs używa mój plik , co mogę zrobić? ”poniżej).
  • Wyczyść „Zamień na”

  • Włącz „Wyrażenie regularne”

  • Kliknij „Zamień wszystko”

    Wizerunek

Uwagi:

  • Powyższe zakłada, że ​​ostatni wiersz w pliku ma końcowe EOL.

  • Powyższy również zakłada, że edytujesz plik tekstowy z EOLs Windows \r\n.

Przed :

abc.xyz
abcdef
abc 123.xyz
abc 123def

Po :

abc.xyz
abc 123.xyz

W moim pliku mam inne EOL, co mogę zrobić?

  • Windows EOL to \r\n.

  • Jeśli używasz plików z innym EOL, możesz przekonwertować je na Windows EOL za pomocą Menu „Edycja”> „Konwersja EOL”.

  • Jeśli nie pracujesz z Windows EOL i nie chcesz ich konwertować, użyj następujących poleceń:

    • Użyj \nzamiast \r\nEOL dla Unix / OS X.

    • Użyj \rzamiast \r\nEOL dla Mac OS (do wersji 9)


Nie wiem ani nie obchodzi mnie, jakich EOL używa mój plik, co mogę zrobić?

  • Możesz użyć \Rlub (?:\r\n?|\n)lub (?:\r?\n?)zamiast \r\n. Pozwala to obejść każdy problem z EOL faktycznie używanymi w pliku.

  • Możesz także użyć (?:\r?\n?|$). To wyrażenie będzie działać, jeśli w ostatnim wierszu pliku nie ma EOL.


Dalsza lektura


5
Możesz użyć \ R, aby dopasować dowolny podział linii.
user694733,

@ user694733 Proszę wyjaśnić? \rnie pasuje do EOL w systemie Windows. Po usunięciu \npozostaną puste linie. OP stwierdził: „Chcę go całkowicie usunąć, nawet nie zostawiać pustej linii”.
DavidPostill

Wielkie litery R. N ++ używa PCRE, który ma tę klasę znaków specjalnych, jeśli moja pamięć dobrze mi służy.
user694733

@ user694733 Ah. OK. Przetestowałem to i działa.
DavidPostill

regex101.com to lepsza strona do nauki wyrażeń regularnych niż regexexr
cat

14

Przyjęta odpowiedź jest poprawna, ale nie zawsze będziesz mieć gotowy wyrażenia regularne. Przedstawiam więc prostsze rozwiązanie.

  1. Ctrl+ F- kliknij zakładkę Mark
  2. Ustaw „Znajdź co” na .
  3. Zaznacz opcję „Linia zakładek” (dzięki uprzejmości Wrass)
  4. Tryb wyszukiwania = Normalny
  5. Kliknij Zaznacz wszystko -> Powinieneś zobaczyć niebieskie kółko obok oznaczonych numerów linii.
  6. Następnie przejdź do menu Szukaj -> Zakładka -> Usuń nieoznaczone linie.

Jest to miła, prosta alternatywa, jednak możesz wspomnieć, że powinieneś również zaznaczyć opcję „Linia zakładek” w oknie dialogowym Oznacz. Nieprzestrzeganie tego spowoduje usunięcie wszystkich linii.
Wrass

Dobrze, mój notatnik pamiętał go po raz ostatni, więc o tym zapomniałem.
Zikato,

Cały czas używam wyrażenia regularnego, ale nadal używałbym tej metody ze względu na jej prostotę. Oświadczenie: Często korzystam z różnych funkcji zakładek w Notepad ++.
JPhi1618

Ponieważ nie byłeś zadowolony z formatowania, przesłałem edycję, która moim zdaniem będzie przyjemniejsza. Jeśli się nie zgadzasz, możesz go odrzucić lub wycofać.
jpmc26
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.