正则测试
正则表达式的草稿纸:输入模式和标志,粘一段示例文本,所有匹配和捕获组实时高亮。JavaScript 风格 — 和你的浏览器、Node.js 用的同一个引擎。
100% 本地处理 — 全程在你的浏览器里完成,文件绝不上传。
怎么用
- 输入正则模式,选择标志(g、i、m)。
- 粘贴要测试的文本。
- 匹配即时高亮;每个匹配下列出捕获组。
为什么它更安全
正则模式里常带真实数据片段 — 日志、令牌、客户字符串。测试在你的机器上、用你自己浏览器的正则引擎运行,示例文本不会外泄。
常见问题
这是什么方言的正则?
JavaScript(ECMAScript),因为工具跑在浏览器里。和 Node.js 及一般 JS 代码一致。后行断言需要较新浏览器;PCRE 独有的 \K 或递归不可用。
不加 g 标志时为什么只高亮一处?
没有 g 标志只报告第一个匹配 — 这是 JavaScript 的正确行为,不是 bug。要找全部匹配就加上 g。
我的模式和文本会被存到哪吗?
不会。页面把它放在内存里、高亮、关标签页就忘掉。根本没有服务器端。
为什么我的正则匹配不上?
按出现频率排:漏了 g 标志所以只显示第一处;特殊字符没转义 — 字面上的点要写 \.,字面上的星号要写 \*;贪婪量词吃多了,在它后面加个 ? 改成懒惰模式;还有行首锚点的误会 — 不加 m 标志时 ^ 只指整串的开头,加了才在每个换行后生效。先单独测每一小段,再拼起来。
捕获组是干什么的?(?:...) 又是什么?
圆括号会记住里面匹配到的东西,每个组在对应匹配下面单独列出 — (\d{4})-(\d{2}) 会把年和月作为两个值交给你,在替换串里用 $1、$2 引用。在括号里加 ?: 就是「只分组、不捕获」:它照常为优先级服务,只是不占编号,模式很长而你只想取一两个值时,编号不会被搅乱。