正则表达式在线测试

在线正则表达式测试工具,实时高亮显示匹配结果,列出每一处匹配的位置与捕获分组,支持 g/i/m/s 等标志与替换预览,全部在浏览器本地运行。

这个正则测试工具能做什么

正则表达式写起来容易、调起来头疼:多一个反斜杠含义就变了,贪婪和非贪婪差一个问号结果就完全不同,而很多编辑器只告诉你「匹配成功」,不告诉你匹配到了哪一段、位置在哪、分组取到了什么。这个工具就是把这些信息全部摊开给你看:

怎么用

  1. 在「正则表达式」里填规则,不用写两边的斜杠——填 \d{6} 即可,不要填 /\d{6}/
  2. 勾选需要的标志。g 是固定开启的:不开全局匹配只能找到第一处,对调试没有帮助。
  3. 把日志、代码或文章粘到「测试文本」里,结果会实时更新,不用点按钮。
  4. 需要看替换效果时,在「替换预览」里写上替换串。
  5. 点「填个示例」可以先看一个能跑的完整例子,再改成自己的内容。

常见问题

为什么我的正则匹配不到任何内容?

按出现频率排查这四种:一是少了反斜杠,想匹配数字要写 \d 而不是 d,想匹配点号要写 \.;二是大小写问题,勾上 i 标志即可忽略大小写;三是想跨行却被换行挡住了,点号默认不匹配换行,需要勾 s 标志,或把 . 换成 [\s\S];四是中文和 emoji 匹配不全,勾上 u 标志让引擎按 Unicode 字符处理。另外注意锚点 ^$ 默认匹配的是整段文本的开头和结尾,要让它匹配每一行的首尾得勾 m

贪婪和非贪婪有什么区别,为什么我写 .* 总是吃太多?

量词默认是贪婪的:.* 会尽可能多地把后面的内容全吃进去,所以从 <a>1</a><a>2</a> 里用 <a>.*</a> 匹配,拿到的是整个字符串而不是两段。在量词后面加一个问号就变成非贪婪,也就是能用少的就不用多的:写成 <a>.*?</a> 就会匹配出两段。反过来,有时候你希望它多吃一点,那就在结尾加上明确的边界字符,比如用 <a>[^<]*</a> 这种「排除法」写清楚什么时候必须停。

为什么匹配次数那里显示「2000+」?

因为你的正则匹配得太多了,超过了页面单次渲染的上限(2000 处)。这不是正则写错了,而是浏览器把几十万处高亮同时画出来会直接卡死,所以工具主动截断并给出提示,匹配条数和明细都只显示前 2000 处。想完整统计,请把测试文本分段处理,或者给正则加更具体的限定条件缩小匹配范围——通常匹配数异常多,本身就说明规则写得太宽了。

我输入的正则和文本会被上传吗?

不会。所有匹配都是在你自己的浏览器里完成的,用的是浏览器内置的正则引擎,页面不会把正则、测试文本或替换串发送到任何服务器。这一点对调试含密钥、内网地址、用户数据的日志尤其重要——你可以放心地整段粘进来。本站也没有账号体系和登录,关掉页面后这些内容不会被保存。

← 返回全部工具