RegEx:如何从TXT文件或字符串中提取所有电子邮件地址

现在,您有一个混合了电子邮件地址和文本字符串的文本文件,并且您想要提取电子邮件地址。 在本文中,我将向您展示如何使用正则表达式从TXT文件或字符串中提取所有电子邮件地址。

选项1,Excel公式:
=TRIM(RIGHT(SUBSTITUTE(LEFT(A1,FIND (" ",A1&" ",FIND("@",A1))-1)," ", REPT(" ",LEN(A1))),LEN(A1))).

如果您很难使用Excel,这个公式很令人沮丧。 Excel对订单有严格的规定。 通常情况下,您複製并粘贴複杂的公式,但Excel不会接受它,除非您在单元格中键入表达式。 与Excel公式相关的另一个问题是您必须花费一定的时间来调试快速,特别是长的快速。

选项2,Excel VBA代码。
vba-code-1

1.按ALT + F11键,这将带您进入Microsoft Visual Basic for Application窗口

2.单击“插入”>“模块”,複製并通过“模块”窗口中的以下内容:

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

3.选择要应用于上述代码的範围。 在这种情况下,範围A1:A4
4.按确定继续该过程。

vba-code-4

选项3:正则表达式

如果您没有任何编程知识,那么正则表达式很难学习。 但是,您可以应用此一个简单表达式来过滤电子邮件地址。
[a-zA-Z0-9-]{1,}@[a-zA-Z0-9-]{1,}.[a-zA-Z]{1,}

Octoparse具有内置的RegEx工具,非常方便人们清理提取的数据。 特别是对于非IT专业人员来说,这是一个额外的奖励,你不必花时间学习python来清理数据。 使用Octoparse网络抓取工具,现在可以进行数据提取,清洁和导出一体化。

regex-tool

1.打开Octoparse应用程序

2.在源文本处複製文本字符串。 例如,在这种情况下,文本字符串是:

此电子邮件地址有效:web@email.net,此电子邮件地址不是有效的web @ email。 与what_ever@public.com相同的是有效的电子邮件地址和地址test @ test。 无效! OCTOPARSE@test.com也有效

3.将表达式複制并粘贴到“正则表达式”框中。

4.选择底部的“全部匹配”选项,然后单击“匹配”。

media


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章