正则测试器
匹配高亮与替换
在线工具箱 / 文本处理
正则测试器:写完正则立刻看到匹配结果 —— 高亮预览、每一处匹配的位置和分组、替换预览,还有 JS / Java / Python / Go 四种语言的现成代码片段。常用正则能一键填入,不用去背。全部在浏览器本地算,文本不上传。
怎么用
- 在上面写表达式,勾 flag(g 全局 / i 忽略大小写 / m 多行 / s 让 . 匹配换行)。
- 下面粘测试文本,点「开始测试」。高亮预览里命中的部分会标出来,匹配结果区逐条列出位置(index)和每个分组($1、$2)。
- 「替换预览」里填替换串,可以用 $1 $2 引用分组,然后执行替换。
- 右边「常用正则速查」按分组列了手机号、邮箱、身份证这类表达式,点一下直接填进去,填完还能改。
跨语言生成的三个坑
- 分组引用写法不同
- JS 是 $1,Python 的替换串习惯用 \1,Go 用 $1、Java 用 $1。生成的片段里已经按各语言的习惯转好了。
- Go 用的是 RE2
- 没有回溯,环视((?=))和反向引用(\1)都不支持。你写这类表达式时页面会提示 —— 不是代码生成错了,是 Go 的正则引擎真的不支持。
- 零长度匹配会死循环
- JS 里用 while (re.exec()) 循环时,如果正则可以匹配空串,index 不会前进,就卡死了。生成的 JS 代码里已经带上了「手动前进一格」的处理。
同类工具