Command Palette

Search for a command to run...

电子邮件提取器:干净地从混乱的文本中提取每个地址

电子邮件提取器:干净地从混乱的文本中提取每个地址

T
Toolz Team
|Aug 23, 2026|16 最小读数

正则表达式 合集的一部分

让我构建这个的工作以转发的电子邮件链的形式到达,深达四十条消息。一位客户想要一份每个在六个月的线程上被复制的人的名单,这样他们就可以将群组迁移到适当的邮件列表中。每个地址都在那里,埋葬在 To:Cc: lines, in signature, in quoted replys, 有时三遍过去, 手拉手复制要花一个下午时间, 我还是会错过几个, 再重复几个, 我其实需要的是会读取整块文字, 找到里面的每一个邮箱, 扔掉重复的, 递给我一个干净的清单, 那就是 电子邮件提取器的,而本指南解释了它是如何工作的,以及为什么匹配的枯燥细节很重要。

TL;博士: Email 提取器扫描一块文本, 提取出它所包含的每一个电子邮件地址, 返回一个可以复制的去重复列表 Toolz 工具更进一步, 从同一个文本中提取 URL、电话号码、IPv4 地址, 并使用相同的引擎与策划的正则表达式匹配, 折叠重复大小写不敏感, 并可以对输出进行排序和小写, 一切都运行客户端:无上传、无注册、离线工作。

Laravel 和 React 上构建 SaaS 产品,并运送 WordPress 插件,而那项工作中令人惊讶的大量内容是将非结构化文本变成结构化列表。一个支持收件箱导出、一个抓取的页面、一个日志文件、一个粘贴的文档:它们都将您想要的数据与周围的噪声混合在一起。从该噪声中拉出地址、链接或 IP 是您不断执行的一项小任务,并且使用您每次都记住并重输入的正则表达式来完成它正是浏览器工具应该消除的摩擦。因此,这是我希望我能在四十条消息链落入我腿上的那个下午。

什么是电子邮件提取器?

Email 提取器是一种读取自由文本并将其中每个电子邮件地址作为列表返回的工具,您粘贴一块文本,无论是电子邮件线程、网页、CSV 转储、聊天日志还是源代码页面,并且该工具使用识别电子邮件形状的模式找到每个地址:本地部分、at 符号和以有效顶级域结尾的域。您不是自己阅读文本并一次复制一个地址,而是一次获取整个集合,并删除重复项。

工具 电子邮件提取器 是故意超过电子邮件。同一个扫描引擎可以提取http和https URL,电话号码和IPv4地址,因为它们是同一类问题:在文本墙中找到已知模式的每次出现,并干净地列出它。这使得它成为一个通用的提取实用程序,而不是一个单一的技巧工具。核心思想在所有四种类型中都是恒定的。为有效匹配的外观定义一个精确的模式,扫描文本中的每一个不重叠的出现,然后清理,去重复,并可选地将结果排序到一个列表中,您可以粘贴到任何需要的地方。

为什么不只是眼球检查它或使用页面查找呢?

因为这两种方法都以最重要的方式失败。手读文本和复制地址的速度很慢,更糟糕的是,它不可靠:您错过了隐藏在签名块内的地址,您从引用的回复中复制了同一个地址两次,并且您无法知道您应该得到多少。输入越大,赔率越差,需要提取的输入通常是大输入。

Browser find-in-page 对此也好不到哪儿去,它突出显示的是你已经知道的字符串的匹配,但是提取的全部意义在于你事先并不知道地址,所以没有什么可以搜索的,你需要的是一个无论邮件的确切字母如何都符合其形状的模式,这恰恰是一个正则表达式所提供的,正确地写出那个表达式是它自己的小技能,而稍微弄错意味着要么丢失有效地址,要么抓到只看起来像一个的垃圾专用提取器将测试过的模式烘烤进去,这样你就不必重新输入它,并且将其与去重复配对,这样你复制的列表就是你可以信任的列表,如果你想理解或调整模式本身,the regex 测试仪 让您粘贴自己的表达式并实时观看它与示例文本的匹配。

Email匹配的准确度如何?

1个提取器有用还是烦人的问题,所以值得精确,邮箱格式由下定义 RFC 5322并且完整的语法是著名的巴洛克风格。它允许引用带有空格的局部部分、括号中的注释以及其他在技术上有效且从未在真实数据中出现过的形式。试图匹配整个 RFC 的正则表达式是巨大的,并且在实践中它弊大于利,因为它开始匹配任何邮件服务器都不会接受的字符串。

Toolz 提取器使用的是业界已经确定的实用子集:字母、数字和常见标点符号的局部部分、at sign 以及以至少两个字母的顶级域结尾的虚线域,这是大多数验证库使用的相同形状,它与人们实际拥有的地址相匹配,同时拒绝噪音,这是一种故意的交易,你放弃匹配不发生的异国情调形式,以避免在看起来像电子邮件但不是的表单上出现误报。对于从真实文档中提取地址,这是整个工作,那个交易是对的工具也是诚实的:同样的推理也适用于电话号码,那里没有单一的全局格式,因此模式故意很宽泛,偶尔会捕获一个不是电话号码的长号码,这就是为什么审查电话结果值得一看。

如何使用该工具从文本中提取电子邮件?

Flow大约需要十秒钟,将你的文本粘贴到输入框中,或者点击加载样本,可以看到一个工作示例,其中包含电子邮件,URL,电话号码和IP地址都混合在一起。

使用顶部的按钮行选择要提取的内容:电子邮件地址、URL、电话号码、IPv4 地址或号码 该工具应用该类型的匹配模式并忽略其他所有内容 然后设置列表选项 留下"删除重复"打开将重复匹配折叠为单个条目,这几乎总是您想要的 打开"排序"按字母顺序排序列表,或在提取数字时按值排序 打开"小写"使电子邮件和 URL 标准化 [email protected][email protected] 视为一个地址。选择结果的连接方式:垂直列表的新行、CSV 单元格的逗号或 a To: 预期的邮件客户端的字段、空间或分号。

单击"提取",结果会出现,并计数发现了多少匹配项和删除了多少重复项。复制列表并将其粘贴到需要去的任何地方。那就是整个循环,并且由于它立即运行,因此您可以在同一文本上的提取类型之间翻转以拉取电子邮件,然后是 URL,然后是 IP,而无需重新粘贴任何内容。

我可以提取什么?我什么时候使用每个?

4种提取类型涵盖了最常隐藏在文本内部的数据,下面是每一种匹配的内容以及它的用途。

类型 比赛 典型用途
电子邮件地址 [email protected] 在实际的 RFC 子集中 从线程中构建邮件列表,从导出中提取联系人
网址 http://https:// 链接,尾随标点符号修剪 从页面或文档中收集每个链接以进行审核
电话号码 7个以上数字的运行,其中有空格、破折号、点或括号 从抓取或粘贴的文本中收集联系电话
IPv4 地址 每个八位字节以 0-255 为界的虚线四边形 从日志文件或配置转储中提取地址
数字 有符号的整数和小数,有数千个分隔符 从报告或粘贴为文本的表格中提取数字

Email和URL类型是我接触到最多的,通常在一起:提取电子邮件以建立联系人列表,然后切换到URL来审核每个链接相同的文档引用。IPv4类型在我读取服务器日志时赢得自己的位置,并希望唯一的一组地址达到一个端点,这自然地与 URL 解析器 当我需要进一步分解这些请求时。数字类型是奇数,但对于从粘贴为纯文本而不是电子表格的报告中提取数字确实很方便。无论您选择哪个,去重复和排序选项的工作方式都相同,因此输出始终是一个干净的、有序的列表,而不是原始匹配项。

重复解复用在这里实际上是如何工作的?

去重复听起来微不足道,直到你考虑外壳。同一个人's地址可以显示为 [email protected] 在一个签名中和 [email protected] 在引用的回复中,并且准确比较字符串的天真的去重复会保留两者。这是错误的:电子邮件本地部分在每个实用的邮件系统中都是区分大小写的,并且根据定义,域是不区分大小写的。因此,提取器在决定两个匹配是否相同时会区分大小写,这意味着即使您没有打开小写选项,这两个拼写也会崩溃为一个条目。

该工具还告诉您它做了什么。结果上方的计数显示了它总共发现了多少匹配项以及它删除了多少重复项,因此您永远不会猜测列表是否因去重复而缩小,或者因为输入比您想象的要少。对于数字和 IP 地址,其中外壳无关紧要,比较是准确的。这是工作时看不见的细节,不工作时令人愤怒的细节,这就是为什么它值得正确而不是简单地离开 Set 的原始字符串。如果你的工作真的关于哪些价值观出现在一个列表中,而不是另一个而不是从散文中拉出来,the 比较两个列表工具 确实在列上设置了算术,并且更适合该特定问题。

在线提取敏感文本安全吗?

对于这个工具,是的,原因是它是如何构建的,而不是你必须承担信念的政策。您粘贴的文本完全在您自己的浏览器中使用 JavaScript 进行扫描。没有上传,没有服务器往返,也没有记录或存储任何内容。您可以通过打开浏览器来确认它's 网络选项卡并单击 提取:没有请求离开页面。页面加载后,您可以离线并继续工作。

这对于提取来说比几乎任何其他类型的工具都更重要,因为您粘贴的文本经常充满您不想泄露的数据。电子邮件线程包含私人地址,日志文件包含内部 IP 地址和主机名,粘贴的文档包含电话号码和名称。将该文本上传到服务器以处理它的提取器,无论意图多么善意,都会将您的私人信件变成其他人's 服务器日志。客户端处理消除了根部风险:文本永远不会离开您的机器。该默认值是故意的遍及 toolz。dev 上的每个工具,我在其中列出了完整的参数 在线工具的数据隐私指南 如果你想要深入推理。为了更广泛地了解这些小型公用事业如何组合成一个工作套件,我的 开发人员生产力工具指南 穿过碎片。

有哪些限制值得了解?

being straight about limits是信任工具的一部分,所以这里是诚实的边缘,邮件模式匹配RFC 5322的实用子集,而不是完整的语法,所以会遗漏一个技术上有效但充满异国情调的地址,其中引用本地部分或评论,那是故意选择,以避免误报,它基本上不影响真实地址,但这是一个限制,你应该知道它的存在电话号码是五种类型中最松散的,因为没有通用的格式;模式寻找七个或更多数字的运行,带有公共分隔符,这意味着它偶尔可以抓住一个不是电话号码的长标识符,所以一眼电话结果就值得一秒。

Extractor 也适用于文本,而不是二进制文件,如果你有一个 PDF 或 Word 文档,复制它的文本并粘贴 that;工具本身无法读取文件格式。并且因为所有内容都在浏览器内存中运行,一个真正巨大的输入将受到浏览器而不是工具的限制,尽管对于电子邮件、链接和 IP,人们实际上提取的上限远远高于你将要达到的水平。这些限制在正常使用中都不会被咬。了解它们只是放心使用该工具和惊讶于边缘情况之间的区别。

常见问题

如何从文本中提取电子邮件地址? 将文本粘贴到 电子邮件提取器 并将类型设置为电子邮件地址。它使用电子邮件模式扫描文本,列出找到的每个地址,删除重复项,并让您复制干净的列表。无需注册或上传,加载后即可离线工作。

它也可以提取 URL 和电话号码吗? 是。将提取类型切换到URL、电话号码、IPv4地址或号码。同一引擎对每种类型应用不同的模式,因此一个工具可以处理同一块文本中的几个提取作业,而无需重新粘贴。

它会删除重复的电子邮件吗? 是的,当删除重复选项打开时。重复匹配会崩溃为单个条目,并且工具会报告删除多少个重复。电子邮件和 URL 的匹配不敏感,因此不同字母外壳中的相同地址被视为一个。

Email匹配的准确度如何? 式(pattern)与真实数据中看到的电子邮件地址的实用子集相匹配:本地部分、atsign和以有效顶级域结尾的虚线域,它没有实现完整的RFC 5322语法,它允许在实践中从未出现过的异国情调形式,并且会在只看起来像电子邮件的字符串上产生错误匹配。

为什么有些电话号码匹配得很奇怪? Phone number 没有单一的全局格式,所以模式寻找七位或更多位数字的运行,中间有空格、破折号、点或括号,这是故意宽泛的,也就是说偶尔可以抓到不是电话号码的长号码,所以从混合文本中提取电话号码时值得复习一下结果。

我可以对提取的列表进行排序吗? Yes。turn on sort 选项,按字母顺序排序列表,或者在提取数字时按数字值排序。将其与删除重复选项结合起来,即可获得一个干净、有序、无重复的列表,准备复制。

我可以以什么格式复制结果? 您可以使用新行、逗号、空格或分号加入匹配项。垂直列表选择新行,CSV 单元格或 To 字段选择逗号,某些邮件客户端选择分号。输出上方的计数显示提取了多少匹配项。

提取的数据是否上传到任何地方? No。JavaScript在浏览器中本地扫描文本。没有传输,记录或存储任何内容,并且该工具一旦加载就保持离线工作,您可以在提取时通过查看网络选项卡来确认。

Comments

0 comments

0/2000 characters

No comments yet. Be the first to share your thoughts!