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.