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