181 votes

Remplacer les nouvelles lignes par un délimiteur de virgule avec Notepad++ ?

J'ai une question sur Notepad++.

Comment puis-je prendre les mots suivants dans Notepad++ (qui sont sur des lignes différentes)

Apples
Apricots
Pear
Avocados
Bananas

Et les transformer en un paragraphe avec une virgule à la fin de chacun d'eux ? Comme ceci :

Apples, Apricots, Pear, Avocados, Bananas

360voto

Ouvrez la boîte de dialogue de recherche et de remplacement (appuyez sur CTRL + H ).

Sélectionnez ensuite Regular expression dans la section "Mode de recherche" en bas de page.

Dans le Find what entrez ceci : [\r\n]+

Dans le Replace with : ,

Il y a un espace après la virgule.

Cela remplacera également les lignes telles que

Apples

Apricots
Pear

Avocados
Bananas

Où il y a des lignes vides.

Si vos lignes comportent des espaces vides, vous devez d'abord les supprimer. La façon la plus simple d'y parvenir est la suivante

EDIT -> Blank Operations -> Trim Trailing Space

OU

TextFX -> TextFX Edit -> Trim trailing spaces

Veillez à définir le mode de recherche sur "Expression régulière".

36voto

Iain Elder Points 2672

Réponse de fapDaddy l'utilisation d'une macro m'a mis dans la bonne direction.

Voici précisément ce qui a fonctionné pour moi.

  1. Placez le curseur après le premier élément de données. enter image description here

  2. Cliquez sur "Macro > Start Recording" dans le menu. enter image description here

  3. Tapez cette séquence : Comma , Space , Delete , End . enter image description here

  4. Cliquez sur "Macro > Arrêter l'enregistrement" dans le menu. enter image description here

  5. Cliquez sur "Macro > Exécuter une macro plusieurs fois..." dans le menu. enter image description here

  6. Cliquez sur "Exécuter jusqu'à la fin du fichier" et cliquez sur "Exécuter". enter image description here

  7. Supprimez tous les caractères de fin de ligne. enter image description here

  8. C'est fait !

enter image description here

5 votes

Cette méthode est lente pour des milliers de données.

0 votes

Excellente réponse. Merci :)

0 votes

Une info formidable, qui sera utile dans de nombreuses situations similaires. Merci !

36voto

trishul Points 77

Voici ce qui a fonctionné pour moi avec une liste similaire de chaînes de caractères dans Notepad++, sans macros ni rien d'autre :

  1. Cliquez sur Edit -> Blank Operations -> EOL à l'espace [Tous les éléments doivent maintenant se trouver sur une seule ligne, séparés par un espace.]

  2. Sélectionnez tous les espaces et remplacez-les tous (par ",").

0 votes

Simple et élégant, agréable

0 votes

@trishul Vraiment bien.

0 votes

Une solution très simple

12voto

ketan27j Points 123

Pour Notepad++ 5.9

  1. Appuyez sur Ctrl+H
  2. Sélectionner le mode de recherche Prolongé( \n , \r , \t , \o , \x... )
  3. Entrez Trouvez quoi : \r\n
  4. Entrer Remplacer par : ,
  5. Remplacer_Tout devrait obtenir le résultat souhaité.

6voto

user3673 Points 321

Une correspondance regex avec \s+ a fonctionné pour moi :

enter image description here

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X