Astuces et Tutoriaux gratuits Web, PC, Mobile

accueil astuces
 » 22 janusiens en ligne| Vous êtes ici : Les Astuces de Jeanviet - Rechercher et remplacer du texte avec Notepad++ et quelques regex 

Rechercher et remplacer du texte avec Notepad++ et quelques regex

Ajoutée dans Bureautique, Webmaster, le 11/11/09 , cet article a été consulté 196022 fois.

Rechercher et Remplacer par...

Notepad++ est un éditeur de texte qui gère les expressions régulières (regex) lorsqu’on souhaite rechercher et remplacer du texte. Ce gros avantage (gestion des regex) permet d’automatiser pas mal les ajouts, supressions, sélections de caractères dans un texte tout en visant juste. Voyons ensemble 8 cas concrets de rechercher et remplacer par (raccourci CTRL+H) qui vont vous permettre de retravailler vos données avant utilisation sous excel, calc, writer, word, ou éditeur html de votre blog.

 

Au sommaire de ce tutoriel:

  1. Télécharger Notepad++
  2. Rechercher et Remplacer par dans Notepad++
  3. Notepad++ et les expressions régulières
  4. 8 exemples pratiques de rechercher et remplacer par
  5. Quelques liens pour aller encore plus loin !

Télécharger Notepad++

Télécharger Notepad++Notepad++ est devenu mon éditeur de texte par défaut… C’est avec Notepad++ que j’ai créé toutes les pages de Jeanviet.info (HTML, CSS). Je l’utilise aussi pas mal au travail pour retravailler des données. La grande force de Notepad++ est de gérer les expressions régulières lorsqu’on souhaite rechercher et remplacer du texte (CTRL+H)

Rechercher et Remplacer par dans Notepad++

Une fois que vous aurez ouvert votre fichier texte dans Notepad++, il suffira d’appuyer simultanément sur les touches CTRL et H (ou depuis le menu Rechercher -> Remplacer…) pour ouvrir la fenêtre Rechercher et remplacer par.

Notepad++ fenêtre rechercher et remplacer par

En (1) on met le texte générique (avec ou sans expressions régulières) à remplacer, en (2) le texte qui viendra en remplacement. En (3) on coche la case Expression régulière ou Mode étendu si nécessaire…. Et on appuie sur Remplacer tout ! si le résultat escompté n’est pas le bon, vous pouvez toujours revenir en arrière avec le raccourci clavier CTRL + Z.

Notepad++ et les expressions régulières

  1. Qu’est-ce qu’une expression régulière en informatique ?
  2. Les pincipales regex à utiliser avec notepad++
  3. Conserver le texte d’une regex sous notepad++

C’est quoi les regex ?

Les expressions régulières (regex) en informatique  sont des règles qui permettent d’isoler dans une zone de texte certains types de caractères (lettre, numéro), ensemble de caractères (mots de 3 lettres, nombre à 4 chiffres, mots commencant par…) , position dans le texte (début, fin, saut de ligne).

Lorsqu’on a isolé ces bouts de textes aux prorpiétés choisies, on peut les supprimer, effacer tout ce qui se trouve autour, ou leur ajouter du texte. Les regex  permettent d’automatiser le traiement de gros fichiers de données… Si vous gérez des fichiers textes, excel de plus de 100 lignes, les regex vont vous faire gagner du temps !

Comme ceci est très abstrait, voici quelques exemples de ce que peuvent faire les regex :

  • Trouver dans un texte toutes les phrases qui commencent par "il était une foie" et remplacer le texte par "Il était une fois" (^il était une foie)
  • Chaque fois qu’un texte se termine par un point, on peut forcer un retour à la ligne (.$)
  • Trouver dans un texte tous les mots qui contiennent 2 o consécutifs (.*oo.*)

Les Principales Regex  à utiliser avec notepad

regex effet exemple
. pour remplacer un caractère ex: "jeanvie." va trouver "jeanviet" et "jeanvier"
[…] pour indiquer un ensemble de caractère ex: "[éèêë]" pour trouver un accent
[^…] pour indiquer des caractères complémentaires ex: "[^0-9]" pour trouver tout ce qui est différent d’un chiffre
^ pour indiquer que le caractère doit être au début d’une ligne ex: "^jeanviet" pour trouver toutes les lignes qui commencent par jeanviet
$ pour indiquer que le caractère doit être en fin de ligne ex: "jeanviet$" pour trouver toutes les lignes qui se terminent par jeanviet
.* n’importe quel nombre de caractère entre deux caractères ex:"j.*t" trouvera jeanviet, jet, jouet

Conserver le texte d’une regex

Pour expliquer la règle qui permet de conserver le texte d’une regex, je vais partir d’un exemple… Prenons ces 4 lignes de texte :

  • mois : jeanviet 2010
  • mois : février 2010
  • mois : mars 2010
  • mois : avril 2010

Je ne veux garder que le mois, c’est à dire jeanviet, février, mars, avril. On va donc supprimer tout ce qui se trouve avant les " : " et l’année " 2010" et conserver le mois entre les deux.

Voici la manip sous notepad :

Conserver une regex

La première regex (.*) prend en compte tout ce qui se trouve avant " : ", la deuxième (.*) c’est le texte entre " : " et 2010. L’utilisation des parenthèses () va nous permetre de rappeler la regex dans le "remplacer par". Comme je veux garder la 2ème regex, je mets "\2" dans remplacer par, ce qui me donne en appuyant sur remplacer tout :

  • jeanviet
  • février
  • mars
  • avril

Si j’avais mis \1 à la place, j’aurais eu la 1ère regex, soit :

  • mois
  • mois
  • mois
  • mois

8 exemples pratiques de rechercher et remplacer par

  1. Enlever les espaces en fin de mot
  2. Mettre tout en minuscule ou tout en majuscule
  3. Supprimer des lignes vides
  4. Filtrer ses données : copier ou supprimer les lignes marquées
  5. Transformer une colonne d’adresse emails en 1 ligne avec séparateurs (virgules)
  6. Mettre des données en colonnes : saut de ligne à chaque séparateur
  7. Ajouter du code HTML
  8. Supprimer du code HTML

1. Enlever les espaces en fin de mots

En récupérant des données, il m’arrive fréquemment d’avoir à faire face à ce problème : l’export a ajouté des espaces en fin de cellule… Comment effacer ces espaces juste en fin de cellule et pas entre deux mots

Copiez-collez vos données dans notepad++

  • mois de jeanviet 
  • mois de février 
  • mois de mars 
  • mois d’avril 

CTRL + H, puis ajouter dans rechercher " $" (tout ce qui se termine par espace : espace suivi de $) et rien dans Remplacer par.

Enlever espace en fin de ligne

Remplacer tout, et le tour est joué !

  • mois de jeanviet
  • mois de février
  • mois de mars
  • mois d’avril

 NB : on peut aussi faire Edition -> enlever les espaces/tabulations à la fin de la ligne (mais ça claque moins ;-) )

2. Mettre tout en minuscule / majuscule

Notepad++ a créé des fonctions magiques automatiques pour résoudre vos problèmes de majuscules / minuscules. Toutes ces fonctions se trouvent sous TextFX -> TextFX Characters dans le menu horizontal de Notepad++. Assurez-vous que tout votre texte soit sélectionné au préalable (CTRL + A)

majuscules / minuscules

UPPER CASE met tout en majuscule

  • MOIS DE JEANVIET
  • MOIS DE FÉVRIER
  • MOIS DE MARS
  • MOIS D’AVRIL

lower case met tout en majuscule

  • mois de jeanviet
  • mois de février
  • mois de mars
  • mois d’avril

Sentence case rajoute une majuscule  en début de phrase (la phrase doit se terminer par un point)

  • Mois de jeanviet.
  • Mois de février.
  • Mois de mars.
  • Mois d’avril.

 

3. Supprimer des lignes vides

RDV ici :  TextFX -> TextFX Edit et appuyez sur Delete Blank Lines (supprimer les lignes vides)

4. Filtrer ses données

Si je veux exporter que des lignes qui parlent de jeanviet, on va procéder en 2 temps marquer les lignes qui parlent de jeanviet (1) puis les copier-coller (2)

Pour marquer les lignes, faites CTRL + F, ajoutez le texte jeanviet (1), cochez marquer les lignes (2), et appuyez sur rechercher tout  (3).

marquer lignes

Toutes les lignes contenant jeanviet sont alors marquées

lignes marquées

Dans le menu horizontal recherche, vous pouvez alors effectuer différentes actions sur les lignes marquées :

actions sur lignes marquées

Les Copier, pour les coller ailleurs… je n’aurai que du jeanviet :-)

copier coller lignes marquées

Les Supprimer, adieu jeanviet  ! :-(

Supprimer lignes marquées

5. Transformer une colonne d’adresse emails en 1 ligne avec séparateurs (virgules)

Vous avez récupéré ces adresses mail via un tableur excel ou votre outil de blogging, elles sont ordonnées en colonne :

  • julien@jeanviet.info
  • jules@jeanviet.info
  • jeremy@jeanviet.info
  • jordan@jeanviet.info
  • jean@jeanviet.info
  • jonathan@jeanviet.info
  • jason@jeanviet.info
  • jimmy@jeanviet.info
  • joris@jeanviet.info
  • jean-baptiste@jeanviet.info
  • johan@jeanviet.info

Si vous voulez leur envoyer tous un mail, il faut les séparer par des virgules et les mettre sur la même ligne, rien de plus simple avec notepad++

On fait CTRL + H, on coche la case Mode étendu (mode regex qui comprends les caractères spéciaux) dans recherche je mets \r\n (\r c’est la fin de ligne - équivalent de notre $ en mode expression régulière - \n c’est le retour à la ligne), dans remplacer par je mets une virgule ","

remplacer saut de ligne par virgule

On peut ensuite appuyez sur remplacer tout

mails sur une ligne séparés par virgule

 Miracle ! ça fonctionne, je n’ai plus qu’à copier-coller cette ligne dans la zone destinataire de ma messagerie préférée.

6. Mettre des données en colonne (séparateur devient saut de ligne)

La réciproque de ce qu’on vient de voir avant est tout à fait possible à réaliser.

remplacer virgule par saut de ligne

Il suffit de mettre la virgule dans recherche et le saut de ligne (\r\n) dans remplacer par… C’est aussi simple que ça ;-)

7. Ajouter du code HTML

Ca devient un peu technique là… Pour que cela soit profitable au plus grand nombre, je vous propose de voir comment on peut tranformer des images hébérgées sur le web en miniatures cliquables…. Ci-dessous les urls qui chargent les photos des 12 membres les plus actifs de jeanviet.info :

 On va les copier-coller dans notepad++

images des membres de jeanviet.info

Chaque image fait 83×97 en taille, on va en faire des miniatures cliquables de 40×47 (on garde la proportion, on diminue la taille), le lien ouvrira une nouvelle fenêtre.

On doit donc transformer ça :

http://jeanviet.info/about/jeanviet.jpg

en ça :

<a href="http://jeanviet.info/about/jeanviet.jpg" target="_blank"><img src="http://jeanviet.info/about/jeanviet.jpg" hspace="3px" width="40px"></a>

visuellement ça donne ça ;-)

On se lance ce n’est pas très compliqué ;- ) surtout que je vous ai donné le code html qui va bien avant ;-)

ajout de code html partout

Dans rechercher on va ajouter (.*) et dans remplacer par, vous reprenez mon code en bleu, ce qui est en vert devient \1

à mettre dans remplacer par

Appuyez ensuite sur remplacer tout… le code est prêt, plus qu’à le copier-coller en mode html sur votre blog comme ceci :

C’est quand même plus sympa qu’une liste brute d’urls !

8. Supprimer du code HTML

Si on veut revenir à l’affichage brut d’urls à partir du dernier code html généré, voici ce qu’il faut ajouter dans les champs rechercher et remplacer en mode expression régulière.

retrouver mon url

On veut récupérer la 2ème expression regulière dans le href=" ", soit \2 dans remplacer par… Et on retrouve ainsi notre liste d’urls :

images des membres de jeanviet.info

Quelques liens pour aller encore plus loin

Avec les regex, les gains de productivité sont infinis ! il y a des regex dont je n’ai pas parlé… des usages plus avancées à explorer, si vous souhaitez aller plus loin, voici quelques liens utiles :

  1. Tuto vidéo pour connaître les sites qui pointent le plus souvent chez vous (en utilisant notepad++, des regex, et calc)
  2. Expreg : si vous voulez vous lancer dans le développement php
  3. D’autres exemples de regex pour Notepad++ (en anglais)

Autrement, vous pouvez aussi utiliser le forum logiciel pour poser toutes vos questions regex / notepad++

copie-colle dans ton blog:


Partager sur Facebook

4 Votes | Average: 5 out of 54 Votes | Average: 5 out of 54 Votes | Average: 5 out of 54 Votes | Average: 5 out of 54 Votes | Average: 5 out of 5 (4 votes, moyenne: 5 sur 5)
Loading ... Loading ...


Dans le même genre

9 commentaires pour “Rechercher et remplacer du texte avec Notepad++ et quelques regex”

  1. cool CANADA a dit :
  2. je voudrais tellement le montrer a mon pere et a ma mere svp svp svp svp



  3. cool CANADA a dit :
  4. salut je veut tellement le montrer a mon pere et a ma mere jaimerais tellement ca svp



  5. runbrun FRANCE a dit :
  6. juste un merci et un grand bravo.



  7. jolapatate FRANCE a dit :
  8. Merci beaucoup pour ces infos.
    Pour ma part en format ANSI j’ai un fichier contenant beaucoup de caractère nul écrit NUL (en fond noir) comme on peut le voir sur cette image “http://image-heberg.fr.cr/files/1258915036313330.jpg” connaisez vous un moyen quel qu’il soit pour remplacer ou ne pas afficher ce caractère?

    Merci d’avance ;-)



  9. Zone Ecolo FRANCE a dit :
  10. Ceci m’a été très utile ! Merci !



  11. Karine FRANCE a dit :
  12. Bonjour,
    Je souhaite trouver dans un dossier tous les fichiers contenant 2 mots spécifiques.
    Est ce qu’il y a une solution avec notepad++ et “Rechercher dans les fichiers” ?
    Merci pour votre réponse.



  13. Hamza CANADA a dit :
  14. Merci, ca ma ete bien utile.



  15. Blaze! FRANCE a dit :
  16. Argh!
    Contrairement à ce qui est écrit, je n’arrive pas à utiliser le mode étendu avec des expressions régulières.
    Je voudrais supprimer toutes les occurrences de “\n 0…..\n” de mon fichier, et je ne vois pas comment faire. Le mode expressions régulières ne gère pas les retours de lignes “\n” et le mode étendu ne gère pas les “…” comme une expression régulière.
    Blaze!



  17. jeux a dit :
  18. Bonjour,

    Merci pour cet article qui en deux lecture m’a permis de faire l’expression que je cherchais à faire depuis un moment



Laisser un commentaire


 
 
 

  

  







© Jean-Baptiste Viet: Chef de Projet Internet, Webmaster de Jeanviet.info, Créateur de Tuto Video, et Ancien Etudiant à Paris 1 Sorbonne | Design : Emilie Boudet