测试正则表达式
构建模式的快速方法:输入、看哪里亮了、查看分组表格、再调整。没有需要按的按钮 —— 结果随你输入实时更新。
- 完全在你的浏览器里运行
- 断网也能用
- 不上传
- 不用注册
- 没有水印
正在加载工具……
工作原理
- 输入模式,勾选需要的标志位(比如"忽略大小写"这类选项)。
- 粘贴要搜索的文本。匹配结果会随你输入实时高亮显示。
- 查看捕获内容表格,或者输入替换文本来预览查找替换的结果。
为什么什么都不用上传
这个页面上的每一步操作,都由运行在你浏览器标签页里的代码完成,用的就是渲染网页的那套引擎。文件从磁盘读进标签页的内存,在那里被处理,再作为下载写回去。它不会被送到任何地方 —— 不会送给我们,也不会送给第三方。
自己动手验证
- 打开浏览器的开发者工具(F12),选择“网络”(Network)面板。
- 载入你的文件,运行这个工具。
- 你能看到的请求只有这些:工具自己的代码 —— 少数几个重型工具还会从公共 CDN 取它们的开源引擎 —— 外加一条发往 loreatec.jp 的小小访问记录(页面地址和标题,仅此而已)。没有一条带着你的文件。
常见问题
这里用的是哪种正则方言?
JavaScript 的正则引擎 —— 也就是每个浏览器和 Node 内置的那一套。先行断言、后行断言和具名分组都能用。如果你的模式是给 Python 或 PCRE 写的,基本语法大多通用,但也要在那边再检查一遍:独占量词和递归在这里是不存在的。
分组列代表什么?
模式里每一对捕获括号都会对应一列编号 —— $1、$2 —— 具名分组会显示它们的名字。如果某个分组在这次匹配里没有参与,对应单元格会显示一条短横线,这和"分组匹配到空字符串"是两回事。
为什么我的模式在别的测试工具里会卡死,这里却不会?
一个能在每个位置都匹配"空内容"的模式,理论上可以无限循环下去。这个测试器会跳过空匹配,并给匹配总数设了上限,所以一个有问题的模式只会显示出奇怪的结果,而不会让标签页卡死。
我的测试文本会被发送到什么地方吗?
不会。很多人会不假思索地把生产环境的日志和客户数据粘贴进正则测试工具里。这里的匹配完全在这个浏览器标签页里进行,什么都不会离开你的电脑。