undefined
Blog > Data Collection > Post

RegEx: Comment extraire toutes les adresses e-mail des fichiers TXT ou des chaînes de caractères?

Friday, September 17, 2021

Maintenant, vous avez un fichier texte mélangé avec des adresses e-mail et des chaînes de texte, et vous voulez extraire les adresses e-mail. Dans cet article, je vais vous montrer comment extraire toutes les adresses e-mail des fichiers TXT ou des chaînes de caractères en utilisant une expression régulière.

 

Sommaire

Option 1 Formule Excel

Option 2 Code Excel VBA

Option 3 Expression régulière (RegEx)

 

 

Option 1: Formule Excel

=TRIM(RIGHT(SUBSTITUTE(LEFT(A1,FIND (" ",A1&" ",FIND("@",A1))-1)," ", REPT(" ",LEN(A1))),LEN(A1))).

 

L'utilisation de cette formule pour extraire des adresses électroniques est frustrante si vous avez du mal à utiliser Excel. Excel a des règles strictes en matière de commande. Il arrive souvent que vous copiez et collez une formule complexe, mais qu'Excel ne l'accepte pas si vous ne tapez pas l'expression dans la cellule. Un autre problème lié à la formule Excel est que vous devez passer un certain temps à déboguer l'expression, surtout si elle est longue.

 

Option 2: Code Excel VBA

 

Étape 1 : Appuyer sur les touches " ALT+F11 ", ce qui vous amènera à la fenêtre Microsoft Visual Basic for the Application.

Étape 2 : Cliquer sur Insertion > Module, copier et coller le texte suivant dans la fenêtre Module :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
Sub ExtractEmail()
'Update 20130829
Dim WorkRng As Range
Dim arr As Variant
Dim CharList As String
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
arr = WorkRng.Value
CheckStr = "[A-Za-z0-9._-]"
For i = 1 To UBound(arr, 1)
    For j = 1 To UBound(arr, 2)
        extractStr = arr(i, j)
        outStr = ""
        Index = 1
        Do While True
            Index1 = VBA.InStr(Index, extractStr, "@")
            getStr = ""
            If Index1 > 0 Then
                For p = Index1 - 1 To 1 Step -1
                    If Mid(extractStr, p, 1) Like CheckStr Then
                        getStr = Mid(extractStr, p, 1) & getStr
                    Else
                        Exit For
                    End If
                Next
                getStr = getStr & "@"
                For p = Index1 + 1 To Len(extractStr)
                    If Mid(extractStr, p, 1) Like CheckStr Then
                        getStr = getStr & Mid(extractStr, p, 1)
                    Else
                        Exit For
                    End If
                Next
                Index = Index1 + 1
                If outStr = "" Then
                    outStr = getStr
                Else
                    outStr = outStr & Chr(10) & getStr
                End If
            Else
                Exit Do
            End If
        Loop
        arr(i, j) = outStr
    Next
Next
WorkRng.Value = arr
End Sub

Étape 3 : Appuyer sur "Ok" pour poursuivre le processus.

 

Étape 4 : Sélectionner la plage que vous souhaitez appliquer au code ci-dessus. Dans ce cas, la plage A1 : A4

 

 

Option 3: Expression régulière (RegEx)

L'expression régulière est très difficile à apprendre si vous n'avez aucune connaissance en programmation. Cependant, vous pouvez appliquer cette simple expression pour filtrer l'adresse électronique, puis extraire les données.

[a-zA-Z0-9-_]{1,}@[a-zA-Z0-9-_]{1,}.[a-zA-Z]{1,}

 

Octoparse dispose d'un outil RegEx intégré, qui est très pratique pour nettoyer les données extraites. Pour les non professionnels de l'informatique, le fait de ne pas avoir à apprendre python est un atout supplémentaire. Avec l'outil de scraping Web Octoparse, il est désormais possible d'extraire, de nettoyer et d'exporter des données.

Lire la présentation du client Octoparse : Transformer des pages web en pistes de vente

 

 

Étape 1: Ouvrir l'application Octoparse

Étape 2 : Copier la chaîne de texte dans le texte source. Dans ce cas, la chaîne de texte est:

This email address is valid: web@email.net and this email address is not valid web@email. Same as what_ever@public.com is a valid email address and address test@test. is not valid! OCTOPARSE@test.com is also valid

Étape 3: Copier et coller l'expression dans la case "Expression régulière".

Étape 4: Choisir l'option "Match All" en bas, et cliquer sur "Match".

 

Auteur: Ashley Ng

Ashley est une passionnée de données et une blogueuse passionnée qui possède une expérience pratique du scraping web. Elle s'attache à capturer des données Web et à les analyser de manière à fournir aux entreprises des informations exploitables. Lisez ses blogs ici pour découvrir des conseils pratiques et des applications sur l'extraction de données Web.

Si desea ver el contenido en español, por favor haga clic en:  RegEx: Cómo Extraer Todas Las Direcciones de Email de Cadenas o Archivos TXT  También puede leer artículos de web scraping en el sitio web oficial

Lectures conseillées:

 

La génération de pistes de vente en utilisant le web scraping

Un guide complet de Web Scraping API pour l'extraction de données

RegEx : comment extraire tous les numéros de téléphone des chaînes de caractères?

25 Façons de Développer Vos Activités avec le Web Scraping

Le Moyen simple d'extraction des données de sites E-commerce

 

Téléchargez Octoparse pour démarrer le web scraping ou contactez-nous pour toute autre demande
questions sur le web scraping!

Contactez-Nous Télécharger
Nous utilisons des cookies pour améliorer votre expérience de navigation. Découvrez comment nous utilisons les cookies et comment vous pouvez les contrôler en cliquant sur les paramètres des cookies. Si vous continuez à utiliser ce site, vous consentez à notre utilisation des cookies.
Accepter Rejeter