piapia123
zh

正则表达式测试

文本处理

所有处理都在浏览器本地完成,数据不上传服务器

测试文本
匹配高亮
捕获组
替换预览

常用正则速查

匹配与替换都在浏览器本地完成,正则与文本都不会上传。

在浏览器里调正则:写一行就高亮一行,捕获组连名字一起列出来,填上替换串就能预览整段文本被替换后的样子。工具对灾难性回溯做了保护 —— 像 (a+)+ 这种模式在长文本上会让标签页失去响应,所以它会被静态识别出来并拒绝在长文本上执行,同时把原因讲清楚,而不是假装算完了。

功能

  • 实时高亮每一处匹配,零宽匹配(\b、(?=x))也会单独标出位置
  • 捕获组表格:组号、具名组的名字、值,未参与的组如实留空
  • 替换预览:支持 $1、$&、$<name>,一律按全局替换预览
  • g / i / m / s / u 五个 flag 独立开关,行为与 JavaScript 引擎完全一致
  • ReDoS 保护:识别嵌套量词与量词化的分支,长输入上停止执行并说明原因
  • 如实提示边界:输入超过 10 万字符、匹配超过 2000 处、扫描超过 120 毫秒都会告知
  • 内置常用正则速查(邮箱、网址、IPv4、日期、时间、汉字、手机号、颜色、标签等),点一下填入并附示例文本

使用方法

  1. 在两条斜杠之间输入正则,按需勾选 flag
  2. 把测试文本粘贴到左侧,匹配结果实时高亮
  3. 需要替换时填上替换串,下方显示替换后的完整结果
  4. 从「常用正则速查」里点一条,可以立刻套用并看到效果

常见问题

为什么我的正则没有结果?
如果文本很长、而模式里出现了嵌套量词(如 (a+)+、(\d+\s?)*),工具会停止执行并给出提示。这类模式在长文本上会发生灾难性回溯,跑下去会让标签页几秒到几十秒无响应。请先用短文本验证模式,或把嵌套量词改写成不含嵌套的形式。
为什么提示「未开启全局」?
正则不带 g 时,JavaScript 只会返回第一个匹配。这是引擎的真实行为,工具如实照做,不会偷偷替你补上 g —— 否则你在这里测通了,复制到代码里却是另一个结果。
超长文本会被截断吗?
会。超过 10 万个字符时只扫描前一段,并在页面上明确说明。这是为了保住页面响应速度 —— 同步的正则一旦开始执行就无法中断,只能从输入规模上设限。
我的正则和文本会被上传吗?
不会。匹配与替换全部在浏览器里完成,页面不发送任何请求,断网也能用。

相关工具