正则测试器 - 在线测试 Regex 匹配结果和捕获分组

在线测试正则表达式匹配结果、捕获分组和常用标志,适合文本提取、表单校验、日志分析和规则调试。

功能特点

  • 实时测试正则表达式对文本的匹配结果
  • 查看捕获分组,辅助排查括号和命名分组逻辑
  • 支持常见正则标志和多行文本匹配场景
  • 区分完整匹配、部分匹配、捕获组和正则标志,避免把一次样本通过当作业务校验完成
  • 适合验证邮箱、URL、日志字段和自定义文本规则

使用方法

  1. 输入正则表达式和需要匹配的测试文本
  2. 调整标志、分组或表达式结构并查看匹配结果
  3. 复制确认后的正则用于前端校验、后端解析或日志处理

示例输入

  • 验证邮箱格式

    正则:^[^\s@]+@[^\s@]+\.[^\s@]+$
    测试:alice@example.com

    适合快速验证匹配结果和捕获分组,但不能证明邮箱真实存在。

  • 提取日志状态码

    正则:\b(?:200|201|400|401|404|500)\b
    文本:GET /api 500 32ms

    适合确认匹配范围和日志中多个状态码的提取行为。

  • 检查反例

    正则:^\d{4}-\d{2}-\d{2}$
    反例:2026-7-1、2026-13-40

    适合区分格式匹配和真实日期合法性。

  • 捕获组与全局匹配

    正则:(?<key>[A-Za-z_]+)=(?<value>[^,]+)
    文本:name=Alice,role=admin

    适合核对命名捕获组、多个匹配结果和分隔符边界;不同语言的命名组语法仍需迁移验证。

  • 忽略大小写标志

    正则:^error$
    标志:i
    文本:Error

    适合确认 i 标志对大小写的影响;当前页面还提供 g、m、u 标志,结果仍以 JavaScript RegExp 为准。

示例输出

  • 验证邮箱格式

    匹配:alice@example.com;捕获组:无
  • 提取日志状态码

    匹配:500;位置:9–12
  • 检查反例

    2026-7-1:不匹配;2026-13-40:匹配格式但日期无效
  • 捕获组与全局匹配

    2 次匹配:key=name,value=Alice;key=role,value=admin;命名捕获组需按目标引擎确认
  • 忽略大小写标志

    i 标志开启:匹配 Error @ 0;g 不改变单次匹配结果

常见错误

  • 正则测试器只验证当前表达式对样本文本的匹配,不会自动判断规则是否符合业务定义。
  • 缺少 ^ 和 $ 可能只匹配字符串中的一段,导致表单校验放过前后多余内容。
  • JavaScript、Python、Java 和 PCRE 的转义、命名组和 Unicode 行为可能不同。
  • 通过一个正例不能证明规则覆盖业务边界,至少要加入反例、空值、超长文本和 Unicode 样本。
  • 复杂回溯表达式可能造成 ReDoS 风险,测试通过不代表生产性能安全。

适用场景

  • 已有正则匹配测试
  • 日志字段提取
  • 表单规则反例验证
  • 捕获组结果检查

实操检查

  • 先用反例确认匹配边界

    测试器在当前浏览器 JavaScript RegExp 中运行,并展示匹配位置和捕获组;每条规则至少要有正例、反例、空值、超长和 Unicode 样本。

  • 迁移前固定引擎和标志

    g、i、m、u 会改变当前匹配行为,但复制到 Python、Java、PCRE 或 RE2 后语法可能不同;上线前应在目标运行时重跑同一批样本并检查最坏耗时。

页面专属核验

使用前与操作中

  • 先明确目标引擎、flags、整串匹配还是局部提取,再设计表达式和样本。
  • 同时准备正例、反例、空值、超长文本和 Unicode 样本,不要只根据一个成功样本判断。
  • 用户输入会进入服务端正则时,提前考虑长度上限、超时和高回溯结构。

结果出来后

  • 匹配结果、捕获组和全局次数是否符合业务预期,而不是只显示一次成功?
  • 日期、邮箱、URL 或权限等业务有效性是否已经由专门逻辑再次校验?
  • 表达式在目标语言的字符串转义、命名组、Unicode 和性能行为是否重新测试?

相关工具

  • 正则生成器:根据自然语言生成正则,支持 AI 输出解释、测试用例和常见误匹配
  • 正则解释器:拆解正则元素,并用 AI 解释匹配逻辑、测试用例和误匹配风险
  • 正则校验:Email、URL、手机号、IPv4、日期等独立校验集合
  • 正则性能测试:本地循环运行正则,查看匹配数和耗时

工具边界

  • 测试结果依赖当前正则引擎和样本,不代表其他语言运行时完全相同。
  • 正则不能替代解析器、业务校验或安全审计。
  • 大文本和高回溯表达式可能影响浏览器性能。

与相似工具的区别

  • 正则校验:通用测试器接受任意表达式和文本并显示捕获;Validator 面向预设字段规则的正反例验收。

安全与兼容性

  • 匹配在当前浏览器的 JavaScript 引擎执行,复制到 PCRE、Python、Java 或 RE2 后语法和 Unicode 结果可能不同。
  • 对用户可控长文本应限制长度和执行耗时;灾难性回溯可阻塞浏览器或后端线程。

下一步排查

  1. 先用正例、反例和边界样本验证匹配范围。
  2. 跨语言使用时转到 Regex Flavor 检查语法差异。
  3. 上线前用 Regex Benchmark 检查耗时和潜在回溯风险。

常见问题

正则测试器和 Regex Generator 有什么区别?

测试器需要你提供已有正则并验证样本;Generator 从自然语言需求生成表达式,生成结果仍需回到测试器验证。

匹配成功就代表数据有效吗?

不一定。正则通常只验证文本形状,日期、域名、邮箱可用性和业务权限仍需要专门逻辑检查。

为什么匹配结果和预期少了一部分?

先检查是否只执行了首个匹配、是否启用全局或多行标志、锚点和捕获组边界,再确认输入中是否包含换行、Unicode 或不可见字符。