如何提取电子邮件地址
有时,您可能从网站或业务软件导出了
包含订单信息或客户详细信息的数据。
但您可能只需要电子邮件地址和订单日期。
一种方法是将所有数据导入 Excel,删除不需要的列
,然后导出剩余的数据。
如果电子邮件字段中还包含电子邮件地址描述,例如:“戴夫·马丁”,则此方法可能效果不佳。
如果你需要多次重复这项任务
,或者需要向别人解释所有步骤,那将会很麻烦。
使用“正则表达式”提取所需数据
正则表达式(简称“regex”或“regexp”)
是一系列字符,用于指定文本中的匹配模式。
一个非常简单的例子是在文本编辑器中查找拼写方式不同的单词,
正则表达式 seriali[sz]e 可以同时匹配“serialise”和“serialize”。
更复杂的情况是文本中用于识别的语法。
-
电子邮件地址:
[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9_-]+
来源: stackoverflow - 从字符串中提取电子邮件地址的正则表达式 -
日期:
\d{4}-\d{2}-\d{1,2}
来源: stackoverflow - 从字符串中提取日期的正则表达式
正则表达式(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 代码片段