正则表达式测试器
在线调试正则表达式:实时高亮每一处匹配、查看捕获组取值、批量替换,并生成 JavaScript、Python、Java、Go 等六种语言的调用代码。
正则表达式测试器是什么
在线调试正则表达式:左边填正则和待测文本,右边实时高亮每一处命中、列出匹配的索引与捕获组取值,并支持批量替换、生成六种语言的调用代码、按类查阅语法速查表。
所有计算都在你的浏览器本地完成,输入的内容不会上传到服务器。
怎么用正则表达式测试器
- 在左栏的正则输入框填入表达式(不含两侧的斜杠)
- 勾选需要的修饰符:g 全局、i 忽略大小写、m 多行、s 单行、u Unicode、v Unicode 集合
- 点「常用」里的预设(邮箱、手机号、日期、身份证、IPv4 等)可以一键填入配套的正则和示例文本
- 在左栏下方粘贴待匹配的测试文本,右栏会实时更新结果
- 在右栏切换标签查看:高亮预览、匹配列表、替换结果、代码生成、语法速查
- 需要替换时在左栏底部填入替换文本,支持 $1 引用捕获组,结果出现在「替换结果」标签里
示例
输入
正则:(\w+)@(\w+)\.(com|cn) 文本:contact: hi@example.com输出
匹配数 1 | 位置 10–24 | 捕获组 1=hi 2=example 3=com「匹配列表」标签会给出每条匹配的下标和全部捕获组的取值
常见问题
为什么我的断言或反向引用没结果显示?
结果区展示的是匹配、捕获组和命名分组。断言本身不产生匹配文本,反向引用的结果体现在捕获组的值上,需要在「匹配列表」里看每条匹配下面的捕获组。
支持哪些修饰符?
g、i、m、s、u、v 六个可勾选,另外固定带 d(用于取捕获组的精确下标)。默认勾选的是 g、s、u。
替换里的 $1 是什么意思?
指的是正则里第 1 个捕获组匹配到的内容。比如用 (\w+)@(\w+) 匹配邮箱、替换成 $2,结果就只剩下域名部分。除了 $1,$$ 表示一个字面量的 $,$& 表示整个匹配。
生成的代码能直接跑吗?
能。代码里的示例文本取的是你测试文本的第一行,正则和修饰符都按目标语言的写法做了转换。要注意 Go 用的是 RE2 引擎,不支持反向引用和环视,这类正则粘过去会在编译时报错。
测试文本会上传吗?
不会。匹配、替换、示例生成和铁路图渲染全部在浏览器本地完成,不联网。
正则写错了会怎样?
正则输入框会标红并在下方显示具体的语法错误信息,右栏也不会输出匹配。修正后自动恢复。
小提示
- 修饰符里始终带 d(索引模式),所以捕获组能显示精确的起止下标;u 和 v 互斥,同时勾上只会生效 u
- 高亮预览用两种底色交替,相邻的两个匹配才不会看成一整块;匹配列表最多展示前 300 条
- 「代码生成」会按当前正则和修饰符生成 JavaScript、Python、Java、PHP、Go、Ruby 六份可直接粘贴的代码,各语言的标志位已经做过转换(比如 JS 的 g 在 Python 里对应 findall、在 Go 里不需要)
- 语法速查表里的条目点一下就插到正则框的光标处,写长表达式时不用反复手敲 \d、\b 这些记号
- 页面下方的「正则表达式图」和「示例匹配文本」默认折叠,前者画铁路图,后者按你的正则随机生成一个符合规则的串