Regex 测试

本地处理
正则表达式
54
高亮预览
联系我们 hi@example.org 或 support@example.com,不要回复 test@x.
#匹配位置分组
1hi@example.org5hi · example · org
2support@example.com22support · example · com

使用指南

工具介绍

写正则时最费时间的往往不是写,而是验证:这条表达式到底会匹配到什么、分组捕获到了哪几段。这个页面把正则、测试文本和结果放在同一屏——输入即时匹配、命中处原位高亮,下方表格逐条列出每处命中的位置与各分组捕获的值。

表达式或标志写错时会直接给出错误信息,不必等到贴回代码里才暴露。匹配全程在浏览器本地执行,日志、配置这类不便外发的文本也能直接粘进来试。

使用步骤

  1. 在正则框填入表达式(不用写两端的斜杠),在后方标志位按需组合 g、i、m、s、u、y。
  2. 把待测试的文本粘进下方文本域,命中的内容会即时高亮。
  3. 对照下方表格核对每处匹配的起始位置与各分组捕获值,逐条确认是否符合预期。
  4. 调整正则或标志,结果实时刷新,不需要手动点执行。

适用场景

  • 写日志解析规则时,先拿一段真实日志验证分组能不能稳定抓到时间、级别与消息体。
  • 排查表单校验正则为什么放过了不合法的输入,用高亮结果反推表达式的边界。
  • 确认 ^ 与 $ 在多行文本里的行为,切到 m 标志前后对比差异。
  • 验证提取 URL 查询参数的正则,借分组捕获检查参数名与值有没有被正确切分。

常见问题

粘了几十万字的日志,页面提示停止匹配?
测试文本上限 100,000 字符,超出后会停止匹配并提示缩减文本。这是防止灾难性回溯把页面卡死——某些表达式在长文本上会指数级展开。把日志截成有代表性的几段分开测,结论通常一样。
明明命中几千处,表格却只列到 1000 条?
为避免一次渲染上万行卡住页面,表格只展示前 1000 条,但计数显示的仍是真实总数。把正则写得更严格、或把测试文本缩小到目标片段,就能看到具体命中。
表达式报语法错误,但看不出错在哪?
错误信息来自浏览器构造正则时的报错,显示在输入框下方,通常会指出位置与原因,例如未闭合的分组括号或非法的量词。对照该位置前后检查即可。
不加 g 和加了 g 有什么区别?
不加 g 只返回第一处命中,表格里就只有一条;加上 g 才会找出全部命中并逐条列出。要验证正则在整段文本上的表现,记得带上 g。
我的正则和测试文本会上传吗?
不上传。正则编译、匹配与高亮都在当前页面完成,测试文本只留在本机内存中,关闭页面即释放。

基本操作

  • 输入正则表达式与测试文本,命中内容实时高亮,下方表格列出每处匹配的位置与分组捕获
  • 斜杠后填匹配标志,可组合使用(如 gim);正则或标志语法有误时,错误信息显示在输入框下方

标志说明

  • g 全局匹配找出所有命中,不加 g 只返回第一处
  • i 忽略大小写;m 多行模式,^ 与 $ 匹配每行的行首行尾
  • s 让 . 匹配换行符;u 启用 Unicode 语义(如 emoji 代理对);y 粘性匹配,只从指定位置开始

性能保护

  • 测试文本超过 10 万字符会暂停匹配并提示缩减文本,避免灾难性回溯卡死页面
  • 命中超过 1000 条时仅渲染前 1000 条,计数仍显示真实总数

安全提示

  • 全部计算在浏览器本地完成,正则与文本不会上传服务器

相关工具