如何提取电子邮件地址

有时,您可能从网站或业务软件导出了
包含订单信息或客户详细信息的数据。
但您可能只需要电子邮件地址和订单日期。

一种方法是将所有数据导入 Excel,删除不需要的列
,然后导出剩余的数据。

如果电子邮件字段中还包含电子邮件地址描述,例如:“戴夫·马丁”,则此方法可能效果不佳。

如果你需要多次重复这项任务
,或者需要向别人解释所有步骤,那将会很麻烦。


使用“正则表达式”提取所需数据

正则表达式(简称“regex”或“regexp”)
是一系列字符,用于指定文本中的匹配模式。

一个非常简单的例子是在文本编辑器中查找拼写方式不同的单词,
正则表达式 seriali[sz]e 可以同时匹配“serialise”和“serialize”。

更复杂的情况是文本中用于识别的语法。


正则表达式(Regex)教程

推荐YouTube视频
“38分钟花得值,绝对值得”

如何匹配任意文本模式
(从第 25 分钟开始讲解提取电子邮件地址的语法)

正则表达式使用速查表


RegExr 在线工具

正则表达式通常被Notepad++或Atom等高级文本编辑器所接受。

还有一些免费的在线工具可供使用,其中之一是:
https://regexr.com - 一个用于学习、构建和测试正则表达式的在线服务。

网页界面说明:
“表达式”字段包含正则表达式语法。
“文本”是您要分析的内容。
“工具 > 列表”将显示提取结果。


示例 1:仅提取电子邮件地址

表达式:
[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9_-]+

文本:

戴夫·马丁 615-555-7164 罗德岛州斯普林菲尔德市主街173号,邮编55924 davemartin@bogusemail.com 查尔斯·哈里斯 800-555-5669 弗吉尼亚州亚特兰蒂斯市高街969号,邮编34075 charlesharris@bogusemail.com 埃里克·威廉姆斯 560-555-5153 阿拉斯加州假镇第一街806号,邮编86847 laurawilliams@bogusemail.com

工具 > 列表:
$&\n

结果:

davemartin@bogusemail.com charlesharris@bogusemail.com laurawilliams@bogusemail.com

示例 2:提取电子邮件地址 日期

表达式:
","(.*?)([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9_-]+)(.*?)",".*",(\d{2}\.\d{2}\.\d{4})

文本:

“lorem ipsum dolor sat amet”,“罗伯特·法雷尔<rmfarrell@bogusemail.com>","",02.01.2024, ,5379, "consectetur adipiscing elit","""梅萨,雷内<rmesa@bogusemail.com>""","",04.01.2024, ,20826, "sed do eiusmod tempor inciditunt","Antonio Bugan<antonio@bogusemail.com> ","",04.01.2024, ,2856, "ut Labore et dolore magna aliqua","克劳利唐网球俱乐部<hello@bogusemail.com>","",2024年1月5日,4453,

工具 > 列表:
$2,$4\n

结果:

rmfarrell@bogusemail.com,2024年1月2日;rmesa@bogusemail.com,2024年1月4日;antonio@bogusemail.com,2024年1月4日;hello@bogusemail.com,2024年1月5日

正则表达式使用速查表
. - 除换行符外的任何字符 \d - 数字 (0-9) \D - 非数字 (0-9) \w - 单词字符 (az, AZ, 0-9, _) \W - 非单词字符 \s - 空白字符 (空格、制表符、换行符) \S - 非空白字符 (空格、制表符、换行符) \b - 单词边界 \B - 非单词边界 ^ - 字符串开头 $ - 字符串结尾 [] - 匹配方括号内的字符 [^ ] - 匹配方括号外的字符 | - 或 ( ) - 分组量词: * - 0 个或多个 + - 1 个或多个 ? - 0 个或一个 {3} - 精确数字 {3,4} - 数字范围(最小值、最大值)

来源: GitHub 代码片段


返回顶部