后台日志筛手机号
某 SaaS 公司的运维凌晨排查用户报错,在 50 万行 Nginx 日志里找关联的手机号。手动 grep 正则写不对,漏掉带国家码 +86 或中间带空格的格式。把整段日志贴进工具,勾选「手机号」输出,3 秒拿到去重后的号码列表,直接去 CRM 查对应账号。
从一份招聘公告里扒出联系人邮箱,或者从客户留言中筛出手机号,手动复制粘贴翻页找,十分钟能做完的活拖到半小时。这个工具把纯文本或网页源码丢进去,一次筛出邮箱、手机号、URL、中文、数字五类内容,每类单独列一行,不用二次整理。所有提取在浏览器本地完成,文字不会离开设备,适合处理含联系方式的内部文档或未公开的页面源码。
某 SaaS 公司的运维凌晨排查用户报错,在 50 万行 Nginx 日志里找关联的手机号。手动 grep 正则写不对,漏掉带国家码 +86 或中间带空格的格式。把整段日志贴进工具,勾选「手机号」输出,3 秒拿到去重后的号码列表,直接去 CRM 查对应账号。
法务助理整理去年 200 份采购合同,要把每份合同末尾的联系人邮箱单独摘出来做通讯录。PDF 转 Word 后邮箱混在正文里,逐份复制费了 2 小时。用本工具批量粘贴文本,勾选「邮箱」提取,一次性拿到 200 个邮箱,按合同编号排序后直接导入 Outlook。
独立开发者抓了某分类信息网站 3000 条帖子,原始数据里混杂着图片链接、外链和内链。他只需要帖子详情页的 URL 做去重入库。把整段 HTML 源码贴进工具,勾选「URL」提取,排除掉 jpg/png 结尾的图片链接,剩下 2800 条有效 URL 直接写进数据库。
市场部回收了 500 份开放式问卷,用户填的内容夹杂着表情符号、英文品牌名和数字评分。分析师只想提取纯中文文本做词频分析。把原始回答逐条粘贴,勾选「中文」提取,过滤掉「👍」「iPhone14」「5分」等干扰项,剩下 4.2 万字的纯中文语料直接丢进 NLP 模型。
财务月底核对 80 张电子发票的备注栏,每张备注里既有文字又有数字,她只需要「合同编号」那串纯数字。逐张看眼睛快花了。把备注栏文本全部复制进工具,勾选「数字」提取,拿到 80 串编号后按发票号一一对应,核销速度从 3 小时缩到 20 分钟。
| 维度 | 本工具 | 竞品 A(Regex101) | 传统方法(手工 / 脚本) |
|---|---|---|---|
| 速度 | 输入即出,毫秒级 | 需编写正则后点击匹配,秒级 | 手工逐条翻找,分钟至小时级 |
| 上手门槛 | 零配置,粘贴即提取 | 需掌握正则语法,有学习曲线 | 需懂编程或手动复制粘贴 |
| 提取类型覆盖 | 邮箱/手机/URL/中文/数字 五种一键全选 | 需为每种类型单独写正则 | 需分别识别不同模式,易遗漏 |
| 隐私 | 纯浏览器处理,数据不上传 | 部分功能需联网分析 | 本地操作,但需自行管理文件 |
| 离线可用 | 完全离线,无网络也可用 | 需联网访问网站 | 完全离线 |
| 批量处理 | 一次粘贴多段文本,自动提取全部 | 需逐段粘贴或写脚本循环 | 只能逐条手动摘录 |
| 输入 | 输出 | 说明 |
|---|---|---|
| 请联系 support@example.com 或致电 13800138000。官网 https://www.quanbao5.com | 邮箱:support@example.com 手机:13800138000 URL:https://www.quanbao5.com | 常规:混合输入,同时提取邮箱、手机、URL,验证多类型并行提取能力 |
| 我的电话是 010-88886666,邮箱是 test@test.cn | 手机: 邮箱:test@test.cn | 边界:固话号码(010-88886666)不在提取范围内,只输出邮箱,说明工具不处理固话 |
| 中文内容:你好世界,数字:2024年,URL:http://abc.com | 中文:你好世界 数字:2024 URL:http://abc.com | 常规:同时提取中文、数字、URL,覆盖三种常见类型 |
| 邮箱:a@b.c(单字母域名),手机:12345678901(11位纯数字) | 邮箱:a@b.c 手机:12345678901 | 边界:极短邮箱(a@b.c)和非常规手机号(非1开头但11位)均被提取,说明工具对格式宽松 |
| 数字:3.14159 和 -42,中文:测试 | 数字:3.14159 数字:-42 中文:测试 | 易错:小数和负数被正确提取,但输出中每个数字单独一行,无合并逻辑 |
| 无任何匹配内容,只有标点符号!!! | 易错:空结果输出空字符串,不返回提示信息,用户需自行判断无匹配 | |
| URL:ftp://files.example.com,邮箱:user+tag@domain.co.uk | URL:ftp://files.example.com 邮箱:user+tag@domain.co.uk | 边界:支持 FTP 协议 URL 和带加号标签的邮箱,覆盖非常规格式 |
1.手机号提取时漏掉 170/199 等新号段
正则写 1[3-9]\d{9}1[3-9]\d{9} 或更精确的 1(?:3\d|4[5-9]|5[0-35-9]|6[2567]|7[0-8]|8\d|9[0-35-9])\d{8}工信部近年新增 170/199/166 等号段,简单 1[3-9]\d{9} 会漏掉 170 等号段,需按最新《电信网编号计划》更新正则。
2.邮箱提取时忽略点号或加号子地址
提取结果只保留 @ 前字母数字,如 'user+tag@example.com' 变成 'user@example.com'保留完整邮箱:user+tag@example.comRFC 5321 允许 local-part 包含点号和加号(如 user+tag),很多工具默认只取字母数字导致丢失子地址信息。
3.URL 提取时误把句号结尾的句子截断
从 '请访问 https://example.com。谢谢' 中提取出 'https://example.com。'提取结果应为 'https://example.com',不含中文句号中文标点(。,)紧跟在 URL 后时,正则若未加边界判断会把标点纳入,需在 URL 模式末尾加 (?![.。,]) 排除。
4.数字提取时把连在一起的日期或电话拆散
从 '2024-03-15' 提取出 ['2024', '03', '15'] 三个独立数字提取结果应为 ['2024-03-15'] 或按原样保留连字符用户常需要提取完整日期或电话号码,默认按数字连续匹配会拆散带分隔符的序列,应允许 - 和 / 作为数字的一部分。
5.中文提取时把标点符号也混入
从 '你好,世界!' 提取出 '你好,世界!'提取结果应为 '你好世界',不含逗号叹号Unicode 中中文标点(U+3000 范围)与汉字(CJK 统一表意文字)是不同的区块,需用 \p{Script=Han} 而非 \p{Punct} 来精确匹配汉字。
6.邮箱提取时漏掉 .cn / .com.cn 等二级域名
正则只匹配 .com/.net 结尾,如 'admin@example.com.cn' 被忽略匹配任意有效域名后缀:.com/.cn/.com.cn/.org 等,或使用通用域名模式 [a-zA-Z0-9-]+(?:\.[a-zA-Z]{2,})+国内大量企业邮箱使用 .com.cn 或 .cn 后缀,仅匹配常见顶级域会漏掉大量有效邮箱。
7.URL 提取时把图片文件名中的点号误判为域名分隔
从 'logo.png' 提取出 'logo.png' 当作完整 URL仅提取包含协议(http/https)或 www 开头的字符串,不提取纯文件名不带协议的文件名如 'logo.png' 不是可访问 URL,需加协议前缀判断避免误提取。
匹配结果 = 正则表达式模式匹配(输入文本, 模式集合)
输入文本待提取的原始字符串模式集合邮箱/手机/URL/中文/数字的正则匹配结果提取出的匹配项列表输入文本为“联系邮箱abc@test.com,电话13800138000,网址https://example.com,中文你好,数字2024”。使用邮箱模式 [a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,} 匹配得到 abc@test.com;手机模式 1[3-9]\d{9} 匹配得到 13800138000;URL模式 https?://[^\s]+ 匹配得到 https://example.com;中文模式 [\u4e00-\u9fa5]+ 匹配得到“你好”;数字模式 \d+ 匹配得到 2024。最终输出列表 ["abc@test.com", "13800138000", "https://example.com", "你好", "2024"]。
5 种主流语言实现,复制即用:
import re
text = "联系我: support@example.com 或 13800138000, 网址 https://site.com"
emails = re.findall(r'[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}', text)
phones = re.findall(r'1[3-9]\d{9}', text)
urls = re.findall(r'https?://[^\s]+', text)
chinese = re.findall(r'[\u4e00-\u9fff]+', text)
digits = re.findall(r'\d+', text)
print("邮箱:", emails)
print("手机:", phones)
print("URL:", urls)
print("中文:", chinese)
print("数字:", digits)const text = "联系我: support@example.com 或 13800138000, 网址 https://site.com";
const emails = text.match(/[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}/g) || [];
const phones = text.match(/1[3-9]\d{9}/g) || [];
const urls = text.match(/https?:\/\/[^\s]+/g) || [];
const chinese = text.match(/[\u4e00-\u9fff]+/g) || [];
const digits = text.match(/\d+/g) || [];
console.log("邮箱:", emails);
console.log("手机:", phones);
console.log("URL:", urls);
console.log("中文:", chinese);
console.log("数字:", digits);package main
import (
"fmt"
"regexp"
)
func main() {
text := "联系我: support@example.com 或 13800138000, 网址 https://site.com"
emailRe := regexp.MustCompile(`[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}`)
phoneRe := regexp.MustCompile(`1[3-9]\d{9}`)
urlRe := regexp.MustCompile(`https?://[^\s]+`)
chineseRe := regexp.MustCompile(`[\p{Han}]+`)
digitRe := regexp.MustCompile(`\d+`)
fmt.Println("邮箱:", emailRe.FindAllString(text, -1))
fmt.Println("手机:", phoneRe.FindAllString(text, -1))
fmt.Println("URL:", urlRe.FindAllString(text, -1))
fmt.Println("中文:", chineseRe.FindAllString(text, -1))
fmt.Println("数字:", digitRe.FindAllString(text, -1))
}#!/bin/bash
text="联系我: support@example.com 或 13800138000, 网址 https://site.com"
echo "邮箱:"
echo "$text" | grep -oE '[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}'
echo "手机:"
echo "$text" | grep -oE '1[3-9][0-9]{9}'
echo "URL:"
echo "$text" | grep -oE 'https?://[^ ]+'
echo "中文:"
echo "$text" | grep -oP '[\x{4e00}-\x{9fff}]+'
echo "数字:"
echo "$text" | grep -oE '[0-9]+'<?php
$text = "联系我: support@example.com 或 13800138000, 网址 https://site.com";
preg_match_all('/[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}/', $text, $emails);
preg_match_all('/1[3-9]\d{9}/', $text, $phones);
preg_match_all('/https?:\/\/[^\s]+/', $text, $urls);
preg_match_all('/[\x{4e00}-\x{9fff}]+/u', $text, $chinese);
preg_match_all('/\d+/', $text, $digits);
echo "邮箱: " . implode(', ', $emails[0]) . "\n";
echo "手机: " . implode(', ', $phones[0]) . "\n";
echo "URL: " . implode(', ', $urls[0]) . "\n";
echo "中文: " . implode(', ', $chinese[0]) . "\n";
echo "数字: " . implode(', ', $digits[0]) . "\n";
?>可以。本工具支持同时提取多种类型,包括手机号、邮箱、URL、中文、数字。你只需要把文本粘贴到输入框,点击提取,结果区会按类型分组展示,每种类型对应一个结果框,方便你单独复制或全选。不需要分多次操作。
本工具提取手机号时默认匹配连续 11 位数字(以 1 开头),但文本中如果存在区号+号码(如 010-12345678)或短号(如 10086),这些不会被识别为手机号。另外,如果号码中间有空格或横线,也会被拆断。建议先清理文本中的多余符号,或者手动检查结果中是否有漏掉的情况。
本工具基于正则匹配,会提取所有形如 xxx@xxx.xx 的字符串,包括部分非真实邮箱(如 test@test.com 或乱码)。目前不内置有效性校验(如 MX 记录查询),所以如果你需要过滤无效邮箱,建议在提取后手动核对,或者对结果中的域名做一次简单的拼写检查(比如 @qq.com 写成 @qq,com 的常见错误)。
本工具提取 URL 时基于 http/https 协议前缀匹配,不会区分链接类型(图片、CSS、JS 文件也会被提取)。如果你只想提取网页链接(如 HTML 页面地址),建议先在文本中过滤掉包含 .jpg、.png、.css、.js 等后缀的链接,或者提取后手动筛选。工具本身不提供按文件类型过滤的功能。
不会。提取中文时只匹配汉字(Unicode 中的 CJK 统一表意文字),不包含中文标点(如逗号、句号、引号)和空格。所以结果中每个中文片段都是连续的汉字序列。如果你需要保留标点(比如提取完整的句子),建议先手动复制包含标点的部分,或者用其他文本处理工具配合使用。
默认只提取纯数字(0-9 连续序列),不会包含小数点、负号或百分号。比如“-3.14%”只会提取出“314”三个数字片段。如果你需要提取带符号的数字(如负数、小数、百分比),建议先对文本做预处理(如替换符号为空格),或者提取后手动拼接。工具目前不提供符号保留选项。
本工具目前不内置去重功能,结果区会展示所有匹配项(包括重复)。你可以将结果复制到文本编辑器或 Excel 中使用去重功能,或者在提取前先对原文做一次去重处理(比如用在线去重工具)。如果需要批量处理大量文本,建议配合脚本或专业数据清洗工具使用。
本工具基于浏览器前端处理,没有服务器上传限制,理论上文本长度只受浏览器内存限制。但超过几万字时,页面渲染和正则匹配可能会变慢,甚至导致浏览器卡顿。建议分段处理(比如每次 1-2 万字),或者先删掉无关内容再提取。工具本身不会主动截断你的输入。
可以。每个结果框右上角都有一个复制按钮(图标为复制符号),点击即可复制该类型下的所有结果到剪贴板。如果你只需要复制其中某一条,可以手动选中后按 Ctrl+C(Mac 用 Cmd+C)。结果框也支持全选(Ctrl+A)后复制。
隐私保证所有计算与处理均在你的浏览器本地完成,输入数据不会上传服务器,也不会保存或共享。