Bagaimana cara menghapus baris tanpa "." di Notepad ++? [duplikat]

11

Di Notepad ++, saya memiliki banyak baris dalam format:

abc.xyz

di mana "abc" mungkin memiliki ruang atau - atau angka.

Bagaimana cara menghapus baris tanpa "."? Jadi, jika sebuah baris tidak memiliki ".", Saya ingin menghapus sepenuhnya, bahkan tidak meninggalkan baris kosong.

Chen Stats Yu
sumber

Jawaban:

40

Bagaimana cara menghapus baris tanpa .?

  • Menu "Cari"> "Ganti" (atau Ctrl+ H)

  • Setel "Temukan apa" ^[^\.]*\r\n

    • Anda dapat mengganti \r\ndengan ekspresi reguler EOL (End of Line) yang berbeda tergantung pada EOL dalam file Anda (lihat "Saya memiliki EOL berbeda di file saya, apa yang bisa saya lakukan?" Dan "Saya tidak peduli EOL apa yang digunakan oleh file saya. , apa yang bisa saya lakukan? "di bawah).
  • Hapus "Ganti dengan"

  • Aktifkan "Ekspresi reguler"

  • Klik "Ganti Semua"

    Gambar

Catatan:

  • Di atas mengasumsikan bahwa baris terakhir dalam file memiliki trailing EOL.

  • Di atas juga mengasumsikan Anda mengedit file teks dengan Windows EOLs \r\n,.

Sebelum :

abc.xyz
abcdef
abc 123.xyz
abc 123def

Setelah :

abc.xyz
abc 123.xyz

Saya memiliki EOL berbeda di file saya, apa yang bisa saya lakukan?

  • Windows EOL adalah \r\n.

  • Jika Anda menggunakan file dengan EOL yang berbeda, Anda dapat mengonversinya ke Windows EOL menggunakan Menu "Edit"> "EOL Conversion".

  • Jika Anda tidak bekerja dengan Windows EOL, dan Anda tidak ingin mengubahnya, gunakan yang berikut ini sebagai gantinya:

    • Gunakan \nsebagai ganti \r\nuntuk Unix / OS X EOLs

    • Gunakan \rsebagai ganti \r\nuntuk Mac OS (hingga versi 9) EOL


Saya tidak tahu atau peduli EOL apa yang digunakan file saya, apa yang bisa saya lakukan?

  • Anda dapat menggunakan \Ratau (?:\r\n?|\n)atau (?:\r?\n?)bukan \r\n. Ini mengatasi masalah dengan EOL yang sebenarnya digunakan dalam file.

  • Anda juga bisa menggunakan (?:\r?\n?|$). Ungkapan ini akan berfungsi jika tidak ada EOL di baris terakhir file.


Bacaan lebih lanjut

DavidPostill
sumber
5
Anda dapat menggunakan \ R untuk mencocokkan linebreak apa pun.
user694733
@ user694733 Tolong jelaskan? \rtidak cocok dengan EOL di Windows. Jika Anda menghapus \nAnda dibiarkan dengan garis kosong. OP Stated "Saya ingin itu dihapus sepenuhnya, bahkan tidak meninggalkan garis kosong."
DavidPostill
Huruf besar R. N ++ menggunakan PCRE yang memiliki ini sebagai kelas karakter khusus jika ingatan saya benar.
user694733
@ user694733 Ah. BAIK. Mengujinya dan berhasil.
DavidPostill
regex101.com adalah situs yang lebih baik untuk belajar regex daripada regexexr
cat
14

Jawaban yang diterima benar, tetapi Anda tidak akan selalu siap dengan regex. Jadi saya menghadirkan solusi yang lebih sederhana.

  1. Ctrl+ F- klik pada tab Tandai
  2. Setel "Temukan apa" .
  3. Periksa opsi "Bookmark baris" (milik Wrass)
  4. Mode pencarian = Normal
  5. Klik Tandai Semua -> Anda akan melihat lingkaran biru di sebelah nomor baris yang ditandai.
  6. Kemudian arahkan ke menu Cari -> Bookmark -> Hapus Garis Tidak Bertanda.
Zikato
sumber
Ini adalah alternatif sederhana yang bagus, namun Anda mungkin ingin menyebutkan bahwa Anda juga harus memeriksa opsi 'Bookmark line' di dialog Mark. Kegagalan untuk melakukannya akan mengakibatkan semua baris dihapus.
Wrass
Poin bagus, notepad saya mengingatnya dari yang terakhir kali, jadi saya lupa tentang itu.
Zikato
Saya menggunakan regex sepanjang waktu, tetapi saya masih akan menggunakan metode ini untuk kesederhanaannya. Penafian: Saya juga banyak menggunakan berbagai fungsi bookmark di Notepad ++.
JPhi1618
Karena Anda tidak puas dengan pemformatan Anda, saya telah mengirimkan suntingan yang menurut saya akan lebih menyenangkan. Jangan ragu untuk menolak atau membatalkan jika Anda tidak setuju.
jpmc26