Divers

Notepad++ comment extraire les adresses email d’un fichier

En possession d’un fichier, par example une extraction de boite email, et vous souhaitez extraire uniquement les adresses email ?

En utilisant Notepad++ et une simple expression regulière, la solution est plutôt simple.

Voyez plus bas un exemple complet, ou bien, pour résumer, utilisez l’expression régulière ci-dessous pour trouver les adresses email, ajoutez des retours à la ligne avant et après chacun d’elles, et marquez les lignes contenant une adresse email et supprimez les autres.

Voyez ci-dessous un exemple utilisant la regexp intelligente de la discussion Stackoverflow.com sur « Extract email from text usin notepad++ and regexp », et avec une inspiration en plus d’une discussion de superuser.com « How to delete all lines in Notepad++ except lines containing a word I need? ».
(\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}\b)

En commencant avec le fichier – dans cet exemple, une extraction des champs « A » du dossier envoyés d’Outlook 2013 – vous obtiendrez certainement d’étranges caractères, du texte superflus, plusieurs adresses sur la même ligne, …

Notepad++ how to extract email addresses from a file : File containing email addresses and other information
Fichier contenant des adresses email et d’autres informations

La première étape étant d’ouvrir l’option Replace dans, Search => Replace ou Ctrl+H

Notepad++ how to extract email addresses from a file : Search => Replace menu
Menu Search => Replace

Ici, dans Find what, entrer l’expression régulière suivante
(\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}\b)

Dans Replace with, entrer ceci pour remplacer chaque adresse email par : retour à la ligne \n + chaîne recherchée $1 + retour à la ligne \n
\n$1\n

S’assurer de cocher le bouton Regular Expression, et cliquer sur Replace All

Notepad++ how to extract email addresses from a file : Replace email addresses to add line break before and after each of them
Remplacer les adresses email pour ajouter des retours à la ligne avant et après chacune d’elles

Voyez le résultat – chaque adresse email est à présent sur une seule nouvelle ligne.

Notepad++ how to extract email addresses from a file : File with email addresses separated from the text by line breaks
Adresses email séparées du texte par des retours à la ligne

La prochaine étape est d’identifier toutes les lignes contenant seulement une adresse email. Ouvrir l’onglet Mark dans la fenêtre de recherche. Copier la même regexp qu’avant pour identifier les adresses mail. S’assurer d’avoir coché Regular expression, avec l’option Bookmark line, et commencer l’opération de marquage avec Mark All

Notepad++ how to extract email addresses from a file : Options to mark lines containing only an email address
Options pour marquer les lignes contenant seulement une adresse email

Dans le fichier, toutes les lignes contenant des adresses email sont maintenant marquées.

Notepad++ how to extract email addresses from a file : Email addresses bookmarked in the file
Adresses email marquées dans le fichier

Dans Search => Bookmark, sélectionner le Remove Unbookmarked Lines

Notepad++ how to extract email addresses from a file : Option to delete unbookmarked lines
Option pour supprimer les lignes non marquées

Et voilà ! Le fichier contient maintenant uniquement les adresses email, sans texte superflux.

Notepad++ how to extract email addresses from a file : Final file containing only email addresses
Fichier final contenant seulement les adresses email

Comme dernière étape, il est possible de supprimer les doublons pour obtenir une liste d’adresses uniques.

Order a list and remove duplicates
Ordonner une liste et supprimer les doublons

Lecture sur le sujet