Comment supprimer des lignes sans «.» dans le Bloc-notes ++? [dupliquer]

11

Dans Notepad ++, j'ai plusieurs lignes au format:

abc.xyz

où "abc" peut avoir un espace ou - ou des nombres.

Comment supprimer des lignes sans "."? Donc, si une ligne n'a pas de ".", Je veux qu'elle soit complètement supprimée, ne laissez même pas une ligne vide.

Chen Stats Yu
la source

Réponses:

40

Comment supprimer des lignes sans .?

  • Menu "Rechercher"> "Remplacer" (ou Ctrl+ H)

  • Réglez "Find what" sur ^[^\.]*\r\n

    • Vous pouvez remplacer \r\npar différentes expressions régulières EOL (End of Line) en fonction des EOL de votre fichier (voir «J'ai un EOL différent dans mon fichier, que puis-je faire?» Et «Je me fiche des EOL que mon fichier utilise , que puis-je faire? "ci-dessous).
  • Désélectionnez "Remplacer par"

  • Activer "Expression régulière"

  • Cliquez sur "Remplacer tout"

    Image

Remarques:

  • Ce qui précède suppose que la dernière ligne du fichier a une fin de ligne de commande.

  • Ce qui précède suppose également que vous modifiez un fichier texte avec de Windows EOL, \r\n.

Avant :

abc.xyz
abcdef
abc 123.xyz
abc 123def

Après :

abc.xyz
abc 123.xyz

J'ai un EOL différent dans mon dossier, que puis-je faire?

  • Windows EOL est \r\n.

  • Si vous utilisez des fichiers avec un EOL différent, vous pouvez les convertir en EOL Windows en utilisant le menu "Edition"> "Conversion EOL".

  • Si vous ne travaillez pas avec les EOL Windows et que vous ne souhaitez pas les convertir, utilisez plutôt ce qui suit:

    • Utiliser \nau lieu de \r\npour les EOL Unix / OS X

    • Utiliser \rau lieu de \r\npour Mac OS (jusqu'à la version 9) EOL


Je ne sais pas ou ne me soucie pas des EOL que mon fichier utilise, que puis-je faire?

  • Vous pouvez utiliser \Rou (?:\r\n?|\n)ou (?:\r?\n?)au lieu de \r\n. Cela permet de contourner tout problème avec les EOL réellement utilisés dans le fichier.

  • Vous pouvez également utiliser (?:\r?\n?|$). Cette expression fonctionnera s'il n'y a pas de fin de vie dans la dernière ligne du fichier.


Lectures complémentaires

DavidPostill
la source
5
Vous pouvez utiliser \ R pour faire correspondre n'importe quel saut de ligne.
user694733
@ user694733 Veuillez expliquer? \rne correspond pas à l'EOL sous Windows. Si vous supprimez le, \nvous vous retrouvez avec des lignes vides. OP a déclaré "Je veux qu'il soit complètement supprimé, ne laissez même pas une ligne vide."
DavidPostill
Les majuscules R. N ++ utilisent PCRE qui a ceci comme une classe de caractères spéciale si ma mémoire est bonne.
user694733
@ user694733 Ah. D'ACCORD. Testé et ça marche.
DavidPostill
regex101.com est un meilleur site pour apprendre les regex que regexexr
cat
14

La réponse acceptée est correcte, mais vous n'aurez pas toujours regex prêt. Je présente donc une solution plus simple.

  1. Ctrl+ F- cliquez sur l'onglet Mark
  2. Réglez "Find what" sur .
  3. Cochez l'option "Bookmark line" (gracieuseté de Wrass)
  4. Mode de recherche = Normal
  5. Cliquez sur Tout marquer -> Vous devriez voir un cercle bleu à côté des numéros de ligne marqués d'un signet.
  6. Ensuite, accédez au menu Rechercher -> Signet -> Supprimer les lignes non marquées.
Zikato
la source
Il s'agit d'une alternative simple et agréable, mais vous voudrez peut-être mentionner que vous devez également cocher l'option «Marque-page» dans la boîte de dialogue Marquer. Sinon, toutes les lignes seront supprimées.
Wrass
Bon point, mon bloc-notes s'en est souvenu de la dernière fois, alors j'ai oublié ça.
Zikato
J'utilise regex tout le temps, mais j'utiliserais toujours cette méthode pour sa simplicité. Avertissement: J'utilise également beaucoup les différentes fonctions de signet dans Notepad ++.
JPhi1618
Puisque vous n'êtes pas satisfait de votre mise en forme, j'ai soumis une modification que je pense que vous trouverez plus agréable. N'hésitez pas à le rejeter ou à revenir en arrière si vous n'êtes pas d'accord.
jpmc26