例子反推正则, 粘正例和反例, 自动出能匹配所有正例且拒所有反例的 regex, 输出多个候选按特异度排序。
- 本地处理
- 分类 开发运维
- 适合 格式化、校验、压缩或检查和代码相关的文本。
检测到的骨架
这个工具能做什么
浏览器端正则反推工具。不用自己写正则, 直接粘几条 "希望匹配" 的例子 (正例), 再可选粘几条 "不该匹配" 的例子 (反例), 工具会按列对齐做 token 分类 (字母 / 数字 / 空白 / 标点 / Unicode 文字), 找出哪些位 是固定字符、哪些位是可变字段, 再生成 3-5 个候选正则, 按 "最紧 / 中等 / 最松" 排序。每个候选都会在反例上跑一遍, 命中任何一个反例 的候选会被自动剔除。同时内置 8 套常见模式 (邮箱 / URL / IPv4 / ISO 日期 / 大陆手机号 / 美国邮编 / 信用卡 / 中文姓名) 一键识别。 正例里有 3 条以上符合, 就会作为 "推荐用这条经过验证的模式" 显示在 候选最上方。支持 i / m / g / u 标志切换, 一键复制裸正则或 `/pattern/flags` 形式, "试一条新串" 入口可以拿别的数据再验证一遍 再放心带走。100% 浏览器本地, 不引第三方依赖, 推断引擎约 10 KB。
工具细节
- 输入
- 文本 + 结构化内容
- 页面会根据工具类型展示文本框、数值控件、文件选择或结构化输入。
- 输出
- 即时结果 + 复制
- 结果区优先给出可操作结果,支持项会显示复制、下载或可视化预览。
- 隐私
- 浏览器本地处理
- 主工具逻辑未发现外部 API 调用,输入通常留在当前标签页内处理。
- 保存 / 分享
- 可分享链接状态
- 关键设置会进入 URL,复制链接后别人能复现同一组参数。
- 性能预算
- 首屏 JS ≤ 18 KB
- 没有声明 WASM 依赖,适合快速打开和移动端使用。
- 适用场景
- 开发运维 · 程序员
- 分类和职业标签用于推荐相关工具、组织内链,并帮助用户快速判断是否适合当前任务。
怎么用
-
1. 输入
把内容粘贴或拖入工具面板。
-
2. 处理
点击按钮,在浏览器内本地处理,文件不上传。
-
3. 复制 / 下载
一键复制结果或下载到本地。
正则反推 (例子生成) 适合怎么用
适合穿插在写代码、查问题、做 Review、上线前的小任务里。
适合开发场景
- 格式化、校验、压缩或检查和代码相关的文本。
- 把片段整理好再放进文档、工单、提交或交接材料。
- 不切换工具,快速检查一个小 payload。
开发检查项
- 压缩、混淆这类不可逆处理,先对副本操作。
- 除非确认工具本地处理,不要粘贴密钥和敏感片段。
- 转换后的代码上线前,仍要跑自己的测试或 lint。
下一步可以接着做
这些入口会把当前任务接到更完整的工具链里。
真实使用场景
从导出文件里捞 SKU 编号, 不用手写正则
仓库导出有 `SKU-AX-00421-RED`、`SKU-AX-00422-BLU`、`SKU-BX-01193-BLK` 这种行, 你要写个正则喂给命令行解析器。把这 3 行当正例粘进来, 再把 `Total: 14 units` 当反例粘进来, 点 "推断"。第一个候选是 `SKU-[A-Z]{2}-\d{5}-[A-Z]{3}`。结构精确、拒掉总数行, 复制 粘到流水线就行, 完全不用手数数字位数。
一把抓出混合日志里所有版本号
日志里有 `v1.2.3`、`v2.0.0`、`v10.4.21`, 你想写个正则统一抓。 把三条版本号当正例粘进, `version 1` 和 `vNEXT` 当反例粘进 (防止生成的正则太松)。最紧的候选 `v\d+\.\d+\.\d+` 拒掉两个 反例, 主版本号变长也吃得下, 10 秒不到就拿到要的正则。
给自定义日志格式写正则
你的服务输出 `[2026-05-27 14:32:11] INFO user=alice action=login`, 有 5 条这种行在手。全部粘进正例。工具对齐 `[YYYY-MM-DD HH:MM:SS] LEVEL user=NAME action=VERB` 这个骨架, 给你带捕获组的正则, 每个变动字段一组。粘进 Grafana / Loki 查询, 30 秒上线。
校验中英文混合的项目编号字段
表单收到 `项目-001`、`项目-002`、`项目-127`, 偶尔有人手抖输成 `Project-001`。把中文那几条当正例, 英文那条当反例。工具输出 `项目-\d{3}`。锁死前缀是中文, 拒掉英文输错, 校验直接加。
多语言文件名的正则
清理下载目录, 文件名形如 `report_en.pdf`、`report_zh.pdf`、 `report_ja.pdf`。粘这三条当正例, 再把 `report.tmp` 和 `notes.pdf` 粘进反例。候选 `report_[a-z]{2}\.pdf` 出来, 两位语言码 + .pdf 扩展名, 两条噪声都拒掉。批量重命名脚本就可以 安心扫了。
从 query string 里精准抽单个参数值
想从请求 URL 里抓 `utm_source=X` 的值, 样本: `?utm_source=newsletter&utm_medium=email`、 `?utm_source=twitter&id=42`、 `?other=foo&utm_source=hn_today`。三条都当正例, 一条没有 utm_source 的 URL 当反例。工具给你 `utm_source=[\w_]+`, 参数在 query 任何位置都能命中。
常见踩坑
启发式, 不是穷尽。引擎只看你粘的例子, 生产数据里有你样本没出现过的形状 (比如 SKU 是 4 位数字而不是 5 位) 时会漏。上线前务必在更大的真实语料上验证一遍。
工具不优化运行时安全。输出在 JS / Go / Rust RE2 上跑都没问题, 但喂进朴素回溯引擎 (某些 PCRE 配置、JS 对抗输入时) 可能引发 catastrophic backtracking。处理不可信文本时建议改用 Go / Rust 的 RE2 引擎, 线性时间永远不会爆。
只贴 1-2 条正例时, 对齐算法几乎没东西可比, 结果会塌成 `.+` 或 `\S+`。至少贴 3-5 条形状有差异的正例, 算法才能区分 "这列是固定字符" 和 "这列起是可变字段"。
不贴反例会让正则太宽松。反例就是告诉工具 "什么必须拒"。2-3 条拼写错或近似形状, 就能让对应的过宽候选被自动剔掉。
把不同形状混进正例里 (`alice@example.com` + `+1-555-0100`) 会让对齐算法失效。只有 "有共同骨架" 时它才工作。按形状分组, 每组单独反推一个正则。
隐私说明
token 分类器、列对齐骨架查找、候选生成、反例校验, 全部都是 JavaScript 在你这个浏览器标签页里跑。你贴的正例和反例字符串 (里面可能有真实客户标识、内部 ID、日志行, 任何敏感数据) 绝对 不会上传、不会被记录、不会被我们分析。URL 只记标志位和预设 选择 (不记你贴的例子内容), 因为分享链接不应该不小心把样本 也带走。用的时候打开 DevTools 网络面板看, 没有任何请求带着 你的例子出去。第一次加载完后, 离线也能用。
常见问题
类似工具组合
做你这行的人, 还会一起用这些。