怎么从一堆文字里批量提取邮箱、手机号、网址和数字
报名表导出来是一大段乱七八糟的文字,联系方式混在姓名、备注、表情符号里——手工一个个抠既慢又容易漏。批量提取,是指用固定规则把一段文本里符合特定格式的内容(邮箱、手机号、网址、数字)一次性识别出来并整理成清单。本站的 提取邮箱、提取手机号、提取链接、提取数字 四个页面都在浏览器本地完成,不发任何网络请求。
- 批量提取只做格式识别,不做真实性验证:能提出来不代表这个邮箱能收信、这个号码在用。
- 提取手机号最大的风险不是漏,而是从身份证号、订单号里错切出一个真实存在但无关的号码。
- 提取链接要注意类型:网址、裸域名、相对路径、mailto、甚至 javascript: 是完全不同的东西。
- 提取数字能区分小数、千分位、百分比、中文数字、日期、IP、版本号等十几类。
- 联系方式属于个人信息,本站四个工具全程本地处理、不上传、不写入任何存储。
什么时候需要批量提取,什么时候不该用
批量提取适合处理「格式不规整但内容有规律」的文本:导出的报名表、聊天记录、网页源码、会议纪要。共同点是信息确实在里面,只是被淹没在无关文字中,人工抠既慢又必然漏。
一句话定义:批量提取是用固定的格式规则,把一段文本里符合某类模式的内容一次性识别出来,整理成可复制、可导出的清单——它识别格式,不判断真伪。
三类典型场景
- 名单整理:活动报名信息导出来是一段连着的文字,需要把联系方式单独拉成一列。
- 数据清洗:从爬下来的网页源码或复制的表格里,把有效字段挑出来做后续处理。
- 内容核对:检查一篇文稿里所有外链是否都指向预期域名,或统计一份报告里出现了哪些数字。
不该用的两种情况
第一种是「原文本身格式很规整」——如果数据已经是标准的 CSV 或表格,直接用 CSV 在线查看器 或表格工具处理更准,提取工具反而可能引入误判。
第二种是「你要的不是提取而是删改」。想把文章里的手机号打码、把邮箱替换掉,那是 批量查找替换 的活。提取工具一个字都不会改动原文,它只产出一份新的清单。
批量提取邮箱:混淆写法、去重与那条不能碰的红线
提取邮箱的难点不在于找到 @ 符号,而在于判断哪些「像邮箱的东西」不是邮箱,以及怎么处理故意写歪的地址。
后缀白名单:宁可少提,不可乱提
文本里 a@b 形式的片段非常多——代码里的注解、文件路径、社交账号写法都可能命中。所以识别时会校验顶级域名是否在已知列表内,不在列表里的默认不输出。这是一个保守取舍:极少数使用冷门新顶级域名的地址可能被漏掉,但换来的是清单里几乎没有垃圾条目。这一点和提取手机号的策略正相反,因为两者的错误代价不同——多提一个假邮箱只是浪费一封信,多提一个错号码可能打扰到陌生人。
混淆还原:改了什么必须写清楚
为了防爬虫,网页上的邮箱常被写成 name(at)example(dot)com 之类的形式。页面提供还原选项,但有一条硬规矩:原文值、可用值、展示值三者永远分开保存,不许互相顶替。清单里你能同时看到原样和改写后的结果,每一处改写都记一句说明。悄悄改用户的数据比不改更糟——你以为复制的是原文,实际拿到的是工具的猜测。
去重的安全阀
Gmail 一类服务把 a.b@ 和 ab@ 视为同一个信箱,但这个规则并非所有邮件服务都适用。所以「忽略点号」「忽略 + 标签」这类归一化选项即便勾上,也只对确实采用该规则的域名生效,不会一刀切地把不同域名下的地址错误合并。判断两个地址是不是同一个人,最终还得靠你自己了解业务。
批量提取手机号:最容易出错的是「哪些数字不算」
中文文本里 11 位以上的数字串遍地都是:身份证 18 位、银行卡 16 到 19 位、毫秒时间戳 13 位、订单号 20 到 30 位。真正的技术难点不是找到 11 位数字,而是判断哪些 11 位不该算。
整段数字为最小单位:不从长数字里切
扫描时以「一整段连续数字」为最小单位,只有整段数字能被完整解释成一个号码时才输出。这意味着 20260811138001380001 这样的订单号不会被切出一个 13800138000。这是本类工具唯一会造成实际业务损失的错误类型——提出来的是一个真实存在、正在被别人使用、却和你的业务毫无关系的号码。所以这条规则不提供开关。
宽进严出:号段表只标注,不过滤
手机号段几乎每年新增,用白名单过滤必然漏掉最新放号,而「我的新号码提不出来」是用户最不能接受的错误。所以硬门槛只有「1 开头、第二位 3 到 9、共 11 位」,号段表仅用于标注运营商;不在表内的号码照常输出并打上号段未知的标记,由你来判断。
运营商标注要带着免责去看
携号转网全国放开之后,号段和实际运营商已经不能画等号。页面上的运营商标注会常驻一行提示、导出的 CSV 表头里也写一份,就是为了避免有人拿它当准确结论用于分渠道发送。需要确切归属,只能查运营商官方渠道。
打码号码:只标注,绝不还原,也绝不合并
138****8000 中间缺的四位有一万种可能。工具会识别出这是一个打码号码并单独计数,但不会尝试还原,也不会把它和某个完整号码合并去重。掩码字符永远不映射为任何数字——这是防止「以为找到一个号、其实是一万个候选」的唯一办法。
批量提取网址:13 种链接类型不是一回事
「链接」是个笼统说法。从一页 HTML 源码里提出来的东西,可能是完整网址、裸域名、相对路径、页内锚点、邮件地址、电话、磁力链,甚至是脚本调用——它们的用途和风险差别极大。
先按类型筛,再看内容
工具把链接分成十来类:http/https 完整网址、裸域名(没写协议的 example.com)、协议相对(//example.com)、站内相对路径、页内锚点、mailto、tel、ftp、file、磁力与 P2P、应用唤起、data URI、以及 javascript 伪协议。整理外链清单通常只勾选网址类;做站点迁移检查时才需要把相对路径也算进来。
明文 http 单独统计的用意
结果里会把明文 http 链接的数量单独列出来。做全站 HTTPS 迁移或检查混合内容问题时,这个数直接告诉你还剩多少处要改,不用自己在清单里一条条数。
尾部标点的处理
中文语境里链接后面常紧跟句号或右括号,如果原样带进结果,复制出去就是坏链。工具会裁掉这类尾随标点,同时保证配对的括号不被误裁。反过来,包含中文的国际化域名可能因此被提前截断——这是个有意的保守取舍:宁可少收一点,不可把正文吞进链接。
批量提取数字:小数、百分比、中文数字与结构化数字
提取数字看着最简单,实际分类最细。同样是数字,整数、小数、千分位写法、百分比、科学计数法、分数、全角数字、中文数字、大写金额、罗马数字、带圈数字、上下标,各有各的用途,混在一起就没法用。
先分类,再取用
页面按类型分开统计,你可以只勾选需要的那几类。想从财务文本里提金额,勾选小数和千分位就够;想核对文档里的编号,罗马数字和带圈数字才是目标。中文数字与大写金额单独成类,这在处理合同、发票类文本时特别有用——需要把「壹万贰仟」和 12000 对上时,可以再配合 数字转大写金额 与 中文数字互转 交叉核对。
结构化数字:日期、时间、IP 与版本号
有一类「数字」其实是有结构的:2026-08-10 是日期、12:30:45 是时间、192.168.1.1 是 IP、v1.2.3 是版本号、独立的 11 位数字可能是手机号。工具会把它们单独归类而不是拆成一堆散数字,这样从日志或配置文件里提取时才不会得到一地碎片。
注意结构化识别只看格式:2026-13-45 这样的字符串仍然长得像日期,能不能作为有效日期使用需要你自己判断。同理,被归为手机号的 11 位数字这里不校验号段,真要整理号码清单还是用 提取手机号 更稳妥。
提取之后:核对、去重与隐私边界
提取只是第一步,清单拿到手之后还有三件事要做,跳过任何一件都可能在后续环节出问题。
先核对被改写过的条目
凡是工具做过改写的条目(还原过混淆、裁过尾部标点、做过归一化),结果里都有标记。这些是最需要人眼确认的部分——自动规则处理常见情况很可靠,处理刻意写歪的边缘情况则未必。清单不长时全看一遍,长的话至少把标记过的条目筛出来看。
去重要想清楚按什么去
同一个人可能留了两个邮箱,同一个号码可能出现在文本的五个位置。前者不该合并,后者应该合并。工具的去重按值本身进行,跨字段的身份判断它做不了,也不该替你做。名单量大时,导出后用表格工具按业务字段再核一轮更稳。
隐私:能提取不等于可以随便用
手机号和邮箱在个人信息保护法里是明确列举的个人信息。工具本身做到了全程本地处理、不发网络请求、不写本地存储,但提取出来之后怎么用是使用者的责任:来源是否正当、有没有取得同意、用于群发是否合规,这些工具管不了。整理来源不明的联系方式清单,法律风险不会因为处理过程在本地就消失。
常见问题
- 提取出来的邮箱能确认是真实有效的吗
- 不能。这类工具做的是格式识别:判断一串字符长得像不像邮箱地址、域名后缀在不在已知列表里。它不查 DNS、不查 MX 记录、不做投递探测,因为纯前端根本做不到,而真要去查就意味着把你的通讯录发给了第三方服务器。格式正确的地址完全可能早已注销或从来不存在,群发之前该做的验证一步都不能省。
- 为什么身份证号、订单号里的 11 位数字没被当成手机号提出来
- 这是有意设计的。一条简单的「1 开头 11 位数字」规则,会从 20260811138001380001 这样的订单号里挖出一个 13800138000——一个真实存在但和你毫无关系的号码,照着它打电话或导进系统会造成实际损失。所以扫描以「整段连续数字」为最小单位,只有整段数字能被完整解释成一个号码时才输出,绝不从更长的数字串里切一段出来。这条规则不提供关闭开关。
- 新办的号码提不出来怎么办
- 不会提不出来。号段表只用来标注运营商,不作为识别门槛——硬性条件只有「1 开头、第二位 3 到 9、共 11 位」。号段不在表内的号码照常输出,只是会标一个「号段未知」的提示。这和提取邮箱那边的策略正好相反:邮箱用后缀白名单来挡误报,手机号用宽进严出来避免漏掉最新放号。
- 显示的运营商准不准
- 仅供参考。运营商是按号段表推断的,而 2019 年 11 月携号转网全国放开后,号段和实际运营商可能对不上——一个 138 开头的号码现在完全可能在别家网内。需要准确归属时以运营商官方查询为准,本站不做也不能做联网查询。
- 138****8000 这种打码号码能还原吗
- 不能,任何声称能还原的做法都是编造。中间四位有一万种可能,猜出来的号码不是「找回的号码」而是「随机生成的号码」。本站只识别、标注和计数打码号码,并且刻意不把它和完整号码合并去重——否则你会以为找到了一个号,实际上是一万个候选。
- name(at)example(dot)com 这种写法能提出来吗
- 可以,页面提供还原混淆写法的选项,能识别常见的 at、dot 等变体形式。但每一处改写都会在结果里记一笔,清单同时保留原文写法和还原后的值,方便你核对。对方特意把邮箱写成混淆形式通常是为了防爬虫,还原之后怎么用请自行判断是否合适。
- 提取链接时,javascript: 开头的那种也会被提出来吗
- 会被识别并单独归类,但它和普通网址是完全不同的东西。工具会把链接分成网址、裸域名、协议相对、相对路径、页内锚点、mailto、tel、ftp、file、磁力链、应用唤起、data URI、javascript 等类型,其中后几类会带风险提示。整理外链清单时通常只需要勾选网址类;看到 javascript: 或 data: 出现在一份本该是普通链接的清单里,本身就是个值得警惕的信号。
- 这些工具会把我粘贴的名单上传吗
- 不会。四个提取页面都是纯前端实现,代码里连发起网络请求的能力都没有——项目的自动化测试会扫描源码,一旦出现任何取数、上报相关的调用就直接判失败。粘进去的内容不上传、不写入本地存储、不做统计,关掉页面即消失。
先想清楚要提的是哪一类,再挑对应的页面:提取邮箱、提取手机号、提取链接、提取数字。 粘进去、勾好选项、导出清单,全程在浏览器本地完成;导入系统或群发之前,记得对标了提示的条目再人工看一眼。
参考资料
延伸阅读
本文由「小鹿tools」整理,更新于 2026-08。如发现信息过期或有误,欢迎反馈。