首页 > 工具箱 > 文本批量提取

文本批量提取

从一大段文本、一份复制来的网页、一堆日志里,把想要的那一类内容挑出来。和「文本行处理」不同,这里抓的是行里的片段而不是整行——一行里有三个网址就出三条。内置十几种常见目标,也可以直接写正则并指定取哪个捕获组。全部在浏览器本地跑,文本不上传。

各类目标的判定口径

网址与域名
网址认 http://https:// 开头以及裸 www. 开头两种写法,结尾粘着的中英文句号、逗号、引号、右括号会被剥掉(HTML 里 <a href="…"> 的引号也算)。域名则不要求带协议,按「至少一个点 + 2 到 24 位字母后缀」判定,所以 a.jpg 这类文件名不会被当成域名,但 example.co 会。
手机号与固话
手机号按中国内地号段判定:1 开头、第二位 3–9、共 11 位,前后不能再挨着数字,所以 18 位的身份证不会被截出一段当手机号。允许前面带 +8686。固话按「0 开头的 3–4 位区号 + 7–8 位号码」,可带分机号。
身份证与银行卡
身份证先按 18 位结构匹配(地区码 + 合法出生日期 + 顺序码 + 校验位),再用 GB 11643 的加权模 11 验最后一位,验不过的不输出。银行卡按 13–19 位数字匹配后跑 Luhn 校验,同样不合格就丢掉——这两条能把日志里凑巧连在一起的长数字排除掉。
IP 地址
IPv4 会逐段校验每一段都在 0–255,999.1.1.1 不会被当成 IP。IPv6 匹配完整写法与含 :: 的缩写,但不处理内嵌 IPv4 的混合写法。
自定义正则与捕获组
直接写正则本体,不要写两边的斜杠。全局匹配是默认开的,不用自己加 g。写了括号分组时,在「取哪一部分」里选第几组,就只输出那一组的内容——比如用 "price":\s*([\d.]+) 取第 1 组,能把 JSON 里的价格全扒下来。不要用后行断言(?<=…)),老版本 Safari 会直接报语法错。
「删掉命中的内容」怎么用
把处理方式切到第二项,输出的就不再是命中片段,而是原文去掉这些片段之后剩下的样子。用来批量清掉文本里的网址、手机号、表情或某段固定格式的噪音很方便,去重与排序这时不起作用。
相关工具
文本行处理文本截取与拼接文本批量替换正则测试常用正则速查库网页内容提取
已复制