311 votes

Trouver CRLF dans Notepad++

Comment puis-je trouver/remplacer tous les caractères CR/LF dans Notepad++?

Je cherche quelque chose d'équivalent au caractère spécial ^p dans Microsoft Word.

402voto

VonC Points 414372

[\r\n]+ devrait fonctionner aussi

Mise à jour le 26 mars 2012, date de publication de Notepad++ 6.0:

OMG, ça fonctionne enfin !!!

Expression régulière PCRE dans Notepad++


Réponse originale 2008 (Notepad++ 4.x) - 2009-2010-2011 (Notepad++ 5.x)

En fait, non, il ne semble pas fonctionner avec les expressions régulières...

Mais si vous avez Notepad++ 5.x, vous pouvez utiliser le mode de recherche 'étendu' et rechercher \r\n. Cela trouvera tous vos CRLF.

(Je réalise que c'est la même réponse que les autres, mais encore une fois, le mode 'étendu' n'est disponible qu'à partir de Notepad++ 4.9, 5.x et plus)


Depuis avril 2009, vous avez un article de wiki sur le site Notepad++ sur ce sujet:
"Comment remplacer les fins de ligne, changeant ainsi la mise en page des lignes".

Quelques extraits pertinents incluent les processus de recherche suivants:

Recherche simple (Ctrl+F), Mode de recherche = Normal

Vous pouvez sélectionner un EOL dans la fenêtre d'édition.

  • Déplacez simplement le curseur à la fin de la ligne et tapez Shift+Right Arrow.
  • ou, pour sélectionner EOL avec la souris, commencez juste à la fin de la ligne et faites glisser jusqu'au début de la ligne suivante ; faire glisser vers la droite de l'EOL ne fonctionnera pas. Vous pouvez copier manuellement le EOL et le coller dans le champ pour les fichiers Unix (LF-seulement).

Recherche simple (Ctrl+F), Mode de recherche = Étendu

L'option "Étendu" montre \n et \r comme caractères pouvant être appariés.
Comme avec le mode de recherche Normal, Notepad++ cherche le caractère exact.
La recherche de \r dans un fichier au format UNIX ne trouvera rien, mais la recherche de \n le fera. De même, un fichier au format Macintosh contiendra \r mais pas \n.

Recherche simple (Ctrl+F), Mode de recherche = Expression régulière

Les expressions régulières utilisent les caractères ^ et $ pour ancrer la chaîne de recherche au début ou à la fin de la ligne. Par exemple, la recherche de return;$ trouvera les occurrences de "return;" qui se produisent sans texte ultérieur sur la même ligne. Les caractères d'ancrage fonctionnent de la même manière dans tous les formats de fichier.
Le caractère méta '.' point ne correspond pas aux fins de ligne.

[Testé dans Notepad++ 5.8.5]: une recherche par expression régulière avec un \r ou \n explicites ne fonctionne pas (contrairement à la documentation de Scintilla).
Une recherche sur un LF explicite (collé) non plus, ou sur les caractères EOL (invisibles) placés dans le champ lorsqu'un EOL est sélectionné. Recherche avancée (Ctrl+R) sans regexp

Ctrl+M insérera quelque chose qui correspond aux sauts de ligne. Ils seront remplacés par la chaîne de remplacement.
Je recommande cette méthode comme la plus fiable, sauf si vous avez vraiment besoin d'utiliser les expressions régulières.
Par exemple, pour supprimer chaque deuxième saut de ligne dans un fichier à double espacement, entrez Ctrl+M deux fois dans la zone de recherche, et une fois dans la zone de remplacement.

Recherche avancée (Ctrl+R) avec Regexp.

Ni Ctrl+M, $ ni \r\n ne sont appariés.


Le même wiki mentionne également l'alternative de l'éditeur hexadécimal:

  • Tapez la nouvelle chaîne au début du document.
  • Ensuite, sélectionnez pour visualiser le document en mode hexadécimal.
  • Sélectionnez une des nouvelles lignes et appuyez sur Ctrl+H.
  • Pendant que vous avez la boîte de dialogue Remplacer ouverte, sélectionnez en arrière-plan la nouvelle chaîne de remplacement et copiez-la avec Ctrl+C pour la coller dans le champ de texte Remplacer par.
  • Ensuite Remplacez ou Remplacez tout comme vous le souhaitez.

Remarque : le caractère sélectionné pour le nouveau saut de ligne apparaît généralement comme 0a.
Il peut avoir une valeur différente si le fichier est au format Windows. Dans ce cas, vous pouvez toujours aller à Édition -> Conversion de l'EOL -> Convertir au format Unix, et après le remplacement, le restaurer et Édition -> Conversion de l'EOL -> Convertir au format Windows.

22voto

sundar Points 2271

Il semble que cela soit un FAQ, et la résolution offerte est :

Recherche simple (Ctrl+H) sans regexp

Vous pouvez activer Affichage/Afficher Fin de ligne ou afficher Tout, et sélectionner les caractères de saut de ligne maintenant visibles. Ensuite, lorsque vous lancez la commande, certains caractères correspondant au caractère de saut de ligne seront collés dans le champ de recherche. Les correspondances seront remplacées par la chaîne de remplacement, contrairement au mode regex.

Note 1 : Si vous les sélectionnez avec la souris, commencez juste avant eux et faites glisser jusqu'au début de la ligne suivante. Faire glisser jusqu'à la fin de la ligne ne fonctionnera pas.

Note 2 : Vous ne pouvez pas les copier et les coller dans le champ vous-même.

Recherche avancée (Ctrl+R) sans regexp

Ctrl+M insérera quelque chose qui correspondra aux sauts de ligne. Ils seront remplacés par la chaîne de remplacement.

10voto

Nathen Silver Points 178

Sur la boîte de dialogue Remplacer, vous voulez définir le mode de recherche sur "Étendu". Les modes Normal ou Expression régulière ne fonctionneront pas.

Ensuite, il suffit de trouver "\r\n" (ou simplement \n pour les fichiers unix ou simplement \r pour les fichiers au format mac), et de définir le remplacement par ce que vous voulez.

9voto

Je n'ai pas eu beaucoup de chance avec les expressions régulières à partir de la fenêtre de recherche/remplacement.

Cependant, cela fonctionne dans Notepad++ v4.1.2:

  1. Utilisez le menu "Afficher | Afficher la fin de ligne" pour activer l'affichage des caractères de fin de ligne. (Les retours chariots devraient apparaître comme un seul caractère CRLF ombré.)

  2. Sélectionnez l'un des caractères CRLF (placez le curseur juste devant, maintenez enfoncée la touche MAJ et appuyez une fois sur la touche CURSEUR DROITE).

  3. Copiez le caractère CRLF dans le presse-papiers.

  4. Assurez-vous que vous n'avez pas la boîte de dialogue de recherche ou de recherche/remplacement ouverte.

  5. Ouvrez la boîte de dialogue de recherche/remplacement. Le champ 'Rechercher quoi' affiche le contenu du presse-papiers: dans ce cas, le caractère CRLF - qui apparaît comme 2 'caractères de boîte' (probablement un caractère non imprimable ?)

  6. Assurez-vous que l'option 'Expression régulière' est DÉSACTIVÉE.

Vous devriez maintenant pouvoir compter, trouver ou remplacer comme vous le souhaitez.

4voto

Chris Points 31

La façon dont j'ai trouvé que cela fonctionne est en utilisant la fonction Replace, et en utilisant "\n", avec le mode "Extended". Je suis en train d'utiliser la version 5.8.5.

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