Comment extraire des adresses e-mail
Il arrive parfois que vous ayez exporté des données depuis votre site web ou votre logiciel de gestion d'entreprise
contenant des informations sur les commandes ou les coordonnées des clients.
Peut-être n'aviez-vous besoin que de l'adresse e-mail et de la date de la commande.
Une solution consiste à importer toutes les données dans Excel, à supprimer les colonnes indésirables
et à exporter celles qui restent.
This may not work well if the email field also contains the email address description,
for example: “Dave Martin <davemartin@bogusemail.com>”.
Cela peut s'avérer fastidieux si vous devez répéter cette tâche à plusieurs reprises
ou si vous devez expliquer toutes les étapes à quelqu'un d'autre.
Extraire les données souhaitées à l'aide d'une « expression régulière »
Une expression régulière (souvent abrégée en « regex » ou « regexp »),
est une suite de caractères qui définit un motif de correspondance dans un texte.
Un cas très simple consiste à rechercher un mot orthographié de deux façons différentes dans un éditeur de texte,
l'expression régulière série[sz]e correspond à la fois à « serialise » et à « serialize ».
La syntaxe permettant d'identifier des éléments dans le texte présente une certaine complexité
-
une adresse e-mail :
[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9_-]+
source : Stack Overflow - Extraire une adresse e-mail à partir de chaînes de caractères à l'aide d'expressions régulières -
une date :
\d{4}-\d{2}-\d{1,2}
source : Stack Overflow - Expression régulière pour extraire une date d'une chaîne de caractères
Tutoriel sur les expressions régulières (Regex)
Vidéo YouTube recommandée
« 38 minutes bien employées, ça vaut vraiment le coup »:
Comment rechercher n'importe quel motif de texte
(à partir de la 25e minute, la syntaxe permettant d'extraire les adresses e-mail est expliquée)
Aide-mémoire pour l'utilisation des expressions régulières
Outil en ligne RegExr
Les expressions régulières sont généralement prises en charge
dans les éditeurs de texte avancés tels que Notepad++ ou Atom.
Il existe également des outils en ligne gratuits, dont notamment :
https://regexr.com - un service en ligne permettant d'apprendre, de créer et de tester des expressions régulières.
Explication de l'interface Web :
Le champ « Expression » contient la syntaxe d'expression régulière.
Le champ « Text » correspond au contenu que vous souhaitez analyser.
Le menu « Tools > List » affiche les résultats de l'extraction.
Exemple 1 : pour extraire uniquement l'adresse e-mail
Expression :
[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9_-]+
Texte :
Dave Martin
615-555-7164
173 Main St., Springfield RI 55924
davemartin@bogusemail.com
Charles Harris
800-555-5669
969 High St., Atlantis VA 34075
charlesharris@bogusemail.com
Eric Williams
560-555-5153
806 1st St., Faketown AK 86847
laurawilliams@bogusemail.comOutils > Liste :
$&\n
Résultat :
davemartin@bogusemail.com
charlesharris@bogusemail.com
laurawilliams@bogusemail.comExemple 2 : pour extraire l'adresse e-mail et la date
Expression :
","(.*?)([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9_-]+)(.*?)",".*",(\d{2}\.\d{2}\.\d{4})
Texte :
"lorem ipsum dolor sit amet","Robert Farrell <rmfarrell@bogusemail.com>","",02.01.2024, ,5379,
"consectetur adipiscing elit","""Mesa, Rene <rmesa@bogusemail.com>""","",04.01.2024, ,20826,
"sed do eiusmod tempor incididunt","Antonio Bugan <antonio@bogusemail.com>","",04.01.2024, ,2856,
"ut labore et dolore magna aliqua","Crawley Down Tennis Club <hello@bogusemail.com>","",05.01.2024, ,4453,Outils > Liste :
2, 4\n
Résultat :
rmfarrell@bogusemail.com,02.01.2024
rmesa@bogusemail.com,04.01.2024
antonio@bogusemail.com,04.01.2024
hello@bogusemail.com,05.01.2024Aide-mémoire pour l'utilisation des expressions régulières
. - Any Character Except New Line
\d - Digit (0-9)
\D - Not a Digit (0-9)
\w - Word Character (a-z, A-Z, 0-9, _)
\W - Not a Word Character
\s - Whitespace (space, tab, newline)
\S - Not Whitespace (space, tab, newline)
\b - Word Boundary
\B - Not a Word Boundary
^ - Beginning of a String
$ - End of a String
[] - Matches Characters in brackets
[^ ] - Matches Characters NOT in brackets
| - Either Or
( ) - Group
Quantifiers:
* - 0 or More
+ - 1 or More
? - 0 or One
{3} - Exact Number
{3,4} - Range of Numbers (Minimum, Maximum)source : extraits de code GitHub