Come faccio a eliminare le righe senza "." in Notepad ++? [duplicare]


11

In Notepad ++, ho molte righe nel formato:

abc.xyz

dove "abc" potrebbe avere spazio o - o numeri.

Come faccio a eliminare le righe senza "."? Quindi, se una riga non ha alcun ".", La voglio completamente rimossa, senza nemmeno lasciare una riga vuota.

Risposte:


40

Come eliminare le righe senza .?

  • Menu "Cerca"> "Sostituisci" (o Ctrl+ H)

  • Impostare "Trova cosa" su ^[^\.]*\r\n

    • Puoi sostituire \r\ncon diverse espressioni regolari EOL (Fine linea) a seconda delle EOL nel tuo file (vedi "Ho un EOL diverso nel mio file, cosa posso fare?" E "Non mi interessa quali EOL il mio file utilizza , cosa posso fare? "sotto).
  • Cancella "Sostituisci con"

  • Abilita "Espressione regolare"

  • Fai clic su "Sostituisci tutto"

    Immagine

Appunti:

  • Quanto sopra presuppone che l'ultima riga nel file abbia un EOL finale.

  • Quanto sopra si assume anche la modifica di un file di testo con EOLs di Windows, \r\n.

Prima :

abc.xyz
abcdef
abc 123.xyz
abc 123def

Dopo :

abc.xyz
abc 123.xyz

Ho un EOL diverso nel mio file, cosa posso fare?

  • Windows EOL è \r\n.

  • Se si utilizzano file con un EOL diverso, è possibile convertirli in EOL di Windows utilizzando il menu "Modifica"> "Conversione EOL".

  • Se non lavori con le EOL di Windows e non desideri convertirle, utilizza invece quanto segue:

    • Utilizzare \ninvece di \r\nper EOL Unix / OS X.

    • Utilizzare \rinvece \r\nper EOL Mac OS (fino alla versione 9)


Non so né mi interessa quali EOL utilizzano il mio file, cosa posso fare?

  • Puoi usare \Ro (?:\r\n?|\n)o (?:\r?\n?)invece di \r\n. Ciò aggira qualsiasi problema con le EOL effettivamente utilizzate nel file.

  • Puoi anche usare (?:\r?\n?|$). Questa espressione funzionerà se non c'è EOL nell'ultima riga del file.


Ulteriori letture


5
È possibile utilizzare \ R per abbinare qualsiasi interruzione di riga.
— user694733,

@ user694733 Per favore spiegare? \rnon corrisponde all'EOL su Windows. Se lo rimuovi, \nrimani con righe vuote. OP ha dichiarato "Voglio che sia rimosso completamente, non lasciare nemmeno una riga vuota."
— DavidPostill

La maiuscola R. N ++ usa PCRE che ha questo come una speciale classe di caratteri se la mia memoria mi serve bene.
— user694733,

@ user694733 Ah. OK. Testato e funziona.
— DavidPostill

regex101.com è un sito migliore per l'apprendimento di regex rispetto a regexexr
— cat,

14

La risposta accettata è corretta, ma non avrai sempre regex pronto. Quindi presento una soluzione più semplice.

  1. Ctrl+ F- fare clic sulla scheda Contrassegna
  2. Impostare "Trova cosa" su .
  3. Seleziona l'opzione "Linea segnalibri" (per gentile concessione di Wrass)
  4. Modalità di ricerca = Normale
  5. Fai clic su Seleziona tutto -> Dovresti vedere un cerchio blu accanto ai numeri di riga dei segnalibri.
  6. Quindi vai al menu Cerca -> Segnalibro -> Rimuovi linee non contrassegnate.

Questa è una bella alternativa semplice, tuttavia potresti voler menzionare che dovresti anche selezionare l'opzione 'Linea segnalibro' nella finestra di dialogo Contrassegna. In caso contrario, tutte le righe verranno rimosse.
— Wrass,

Buon punto, il mio blocco note lo ha ricordato dall'ultima volta, quindi me ne sono dimenticato.
— Zikato,

Uso regex tutto il tempo, ma userei comunque questo metodo per la sua semplicità. Disclaimer: Uso molto anche le varie funzioni dei segnalibri in Notepad ++.
— JPhi1618,

Dato che non eri soddisfatto della tua formattazione, ho presentato una modifica che penso ti piacerà di più. Sentiti libero di respingerlo o torna indietro se non sei d'accordo.
— jpmc26,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.