正则表达式测试器 打开工具

正则表达式在线测试:标志、高亮与起止下标

正则调试慢,多半是因为看不见中间结果。把「匹配到了什么、从第几位到第几位、每个组捕获了什么」逐条列出来,比在代码里打一堆 log 快得多。

六种标志各管什么

组合顺序无关,但 g 与 y 同时开时行为由 y 主导。

起止下标怎么用

每条结果都给出匹配文本在原文中的起止下标(index 与 index + length)。这是把正则结果映射回原文的关键——比如要高亮、要截取上下文、要定位第几次出现。

注意下标是按 UTF-16 码元计的,不是按「字符」。一个 Emoji 占两个码元,所以含 Emoji 的文本里下标与肉眼数的位置会对不上。开 u 标志能让匹配按码点处理,但 index 仍是码元偏移。

替换预览里的引用

替换文本支持 $1、$&、$<名字> 等引用:

替换结果实时预览,改一个字就能看到效果,不用先跑一遍代码。

非法表达式会给出原始错误

正则写错时(括号不配对、量词位置不对、字符类未闭合),工具给出的是浏览器原始的错误说明,而不是笼统的「正则无效」。

这一点很重要:不同引擎对同一段非法正则的报错不同,看到浏览器原文才能对上你在代码里遇到的错误。

上面这些都不用装软件,也不用注册:打开页面就能用。

打开正则表达式测试器 →

常见问题

为什么 . 匹配不到换行?

这是规范行为:默认 . 不匹配换行符。要跨行匹配请开 s(dotAll)标志,或用 [\s\S] 这类显式字符类。

为什么 ^ 和 $ 只匹配了整段的首尾?

没有开 m(multiline)标志。开启后 ^ 与 $ 才会匹配每一行的开头与结尾。

测试文本有长度限制吗?

上限 20 万字符,匹配结果最多收集 10000 条,超出会明确告诉你已截断,而不是给一个看起来完整的错误数字。