文本和日常工具·文本工具包
URL 和电子邮件提取如何知道地址结束位置
· 工作原理
文本提取 网址 电子邮件地址
着眼于从散文中提取链接和地址时的两个艰难决定——URL 在哪里停止以及电子邮件模式应该有多严格——以及为什么实用模式在真实文本上击败了完整的 RFC 语法。
带有句号的链接 - 为什么简单提取返回 https://example.com. 并破坏链接
会议记录通常会在句子末尾放置一个有用的链接: `Agenda: https://example.com/roadmap.` 接受每个非空格字符的搜索将包括最后的句号。可见文本看起来合理,但提取的值不再与作者打算共享或重新访问的地址匹配。
ToolAcre 首先查找 HTTP 或 HTTPS 序列,然后删除尾随的句号、逗号、分号、冒号、感叹号和问号。清理是故意附加到匹配边界的,而不是应用于整个文档。当初始模式允许时,URL 中其他位置的标点符号仍然可用。
带有句号的链接:为什么提取必须排除尾随标点符号
URL 模式仅从 `http://` 或 `https://` 开始,一直持续到出现空格或几个结束分隔符之一。引号、尖括号、右括号和右方括号都会停止匹配。该规则允许诸如 `(https://example.com/notes)` 之类的散文返回不带括号的地址。
这是一个实用的边界规则,而不是针对每个可能的 URI 的通用解析器。左括号可以保留在匹配中,而右括号则终止匹配,因此其路径真正包含该字符的地址可能会被缩短。提取器倾向于常见的散文边界,并留下不寻常的情况供人工审查。
电子邮件匹配应该有多严格 — RFC 5322 技术上允许什么,以及为什么匹配所有这些都会在真实文本上产生更差的结果
电子邮件提取也进行了类似的权衡。它在 `@` 之前查找字母、数字和熟悉的邮箱标点符号,然后查找类似域的序列,后跟一个点和至少两个字母。该模式捕获嵌入在注释中的普通地址,而无需尝试重现完整电子邮件语法所承认的每个结构。
较窄的模式很有用,因为提取和验证回答不同的问题。提取识别非结构化文本中可能的联系方式;它不能确定邮箱是否存在、接受邮件或属于指定的人。将结果视为可审查的列表,尤其是当标点符号或不常见的邮箱语法出现在附近时。
去重和排序 — 每个地址都有一个副本,按照首次出现的顺序,因此列表反映了源
对于 URL 和电子邮件地址,ToolAcre 会使用 `Set` 删除重复项。 JavaScript 设置保留插入顺序,因此第一次出现决定了项目在结果中出现的位置,随后相同的匹配项消失。因此,输出从上到下遵循源,而不是未经许可按字母顺序排列联系人或链接。
平等是准确的。 `https://example.com` 和 `https://example.com/` 保持独立,字母大小写不同的电子邮件地址也是如此。提取器不会规范化域、删除 URL 片段或确定两个目标是等效的。这些更改可能会有意合并不同的文本,因此任何进一步的规范化都属于单独的检查步骤。
数字也是如此——从散文中提取数值,以及为什么小数点和千位分隔符使“数字”不像听起来那么明显
数字提取接受可选的减号、一个或多个数字以及由句号引入的可选小数部分。它可以从散文中提取 `-12`、`48` 和 `3.75`。与 URL 和电子邮件提取不同,它直接返回每个匹配项,因此重复值保持重复并保留其出现次数。
分组和本地化形式暴露了该紧凑规则的限制。 `1,250` 返回为 `1` 和 `250`,而 `3,5` 也被分割而不是解释为十进制逗号。货币符号、指数和前导加号不是匹配的一部分。在为任何提取的数字赋予含义之前,请阅读附近的文本。
也是数字:有符号整数和小数,不将分组值视为一个数字
尝试以下注意事项:`Email sam@example.com, then review https://example.com/plan. Backup: sam@example.com. Budget -12.5; seats 24. Reference (https://example.com/help).` 提取电子邮件返回 1 `sam@example.com`。提取 URL 按顺序返回不带句号或右括号的计划和帮助地址。
手动扫描应找到两个电子邮件外观,但一个唯一的电子邮件结果、两个不同的 URL 外观和两个数字匹配。提取数字返回 `-12.5` 和 `24`;示例域内的数字不会添加匹配项,因为不存在任何匹配项。此检查将出现次数与删除重复的联系人和链接列表分开。
这不包括什么 - 验证地址是否确实存在,以及实用模式遗漏的奇特但有效的地址
匹配的电子邮件只是形状与实现的模式相似的文本。 ToolAcre 不会查询邮件服务器、发送测试消息或检查域记录。因此,看似合理的拼写错误可能会通过提取,而不常见但可用的地址可能会被遗漏。在依赖该列表之前,请通过适当的可信渠道确认重要联系人。
URL 提取同样不会请求页面、遵循重定向或测试目的地是否安全或可用。它还需要显式 HTTP 或 HTTPS 前缀,因此不会返回裸露的 `example.com` 。这些限制使提取保持本地化和可预测,但它们使人工审核成为任何后续工作流程的一部分。
要点 — 文本工具包的提取按钮明确地进行了这些权衡,并在浏览器中为您提供了一个干净的、去重复的列表
提取按钮将混合的散文块转换为浏览器中以换行符分隔的匹配项。 URL 和电子邮件使用实用的模式,在常见的散文边界处修剪或停止,并按首次看到的顺序返回唯一值。数字使用较小的有符号十进制模式并保留重复项,反映了不同的函数契约而不是通用提取策略。
仅粘贴您需要的注释,分别运行提取 URL 和提取电子邮件,并将每个列表与源进行比较,然后再继续复制。干净的输出消除了重复扫描,而记录的边界显示了仍然需要判断的地方。对于不常见的语法,在审阅时将原始段落保留在提取结果旁边。