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.