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

Maintenant, vous avez un fichier texte ou un fichier de chaînes de caractères où sont présents des adresses e-mail, et vous voulez en extraire les adresses e-mail. Dans cet article, je vais vous montrer comment utiliser l’expression régulière pour extraire toutes les adresses e-mail des fichiers TXT ou des chaînes de caractères.

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”.

 


已发布

分类

作者:

评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注