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.

Chen Stats Yu
źródło

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

DavidPostill
źródło
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.
Zikato
źródło
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