开发者工具

正则表达式测试工具

用一段文本测试你的正则表达式,实时高亮显示每一处匹配结果。

给这个工具评分

如何使用 正则表达式测试工具

  1. 输入你的正则表达式。
  2. 粘贴要测试的文本。
  3. 查看高亮显示的匹配结果,捕获组会列在下方。

关于 正则表达式测试工具

本工具会使用你浏览器内置的 JavaScript RegExp 引擎,编译你输入的正则表达式以及所勾选的标志位。全局匹配(g)会查找所有匹配项而不仅仅是第一个;忽略大小写(i)会让字母不区分大小写;多行模式(m)让 ^$ 可以匹配每一行的开头和结尾;单行模式(s)则让 . 也能匹配换行符。随后它会列出每个匹配项的位置和捕获组,并在测试文本中高亮显示所有匹配。

在把某个正则表达式用到代码、校验规则或查找替换之前,用这个工具快速验证一下是否符合预期,是最省心的做法。需要说明的是:这里使用的是 JavaScript 的正则语法,与 PCRE、Python 或 Java 的正则在某些地方并不完全一致——比如后行断言、命名捕获组以及 \d 的具体含义都可能有差异——所以在这里能跑通的表达式,换个环境可能还需要微调。为了保持页面流畅,匹配结果最多只显示 50 条,并会自动跳过零长度匹配以避免死循环;如果你的表达式无法编译,也会直接显示引擎给出的错误信息。

整个过程完全在你的浏览器中运行,你输入的正则表达式和测试文本都不会被上传,可以放心地用真实数据测试。如果需要批量替换,可以试试查找替换工具;如果想对比两段文本,可以用文本对比工具

常见问题

这里用的是哪种正则表达式语法?

本工具使用你浏览器内置的 JavaScript RegExp 引擎。它与 PCRE、Python 或 Java 在某些地方并不完全一致——比如后行断言、命名捕获组以及简写字符类的确切含义都可能有差异——所以在这里能匹配的表达式,换到其他语言中可能表现不同。

g、i、m、s 这几个标志分别是什么意思?

全局(g)会返回所有匹配项,而不仅仅是第一个;忽略大小写(i)会让字母匹配不区分大小写;多行(m)会让锚点匹配每一行的开头和结尾,而不是整个字符串;单行(s)则让点号也能匹配换行符。

为什么超过 50 条匹配后就不再列出了?

匹配列表最多显示 50 条,这样即使输入内容很大,页面也能保持流畅。列表上方显示的匹配总数仍然是真实的总数,只有详细的逐条列表被截断了。

为什么我的表达式提示无效?

JavaScript 引擎无法编译该表达式,通常是括号不匹配、多了个反斜杠,或者用到了这种语法不支持的写法。工具会显示引擎给出的具体错误信息,方便你了解问题所在。

我输入的表达式或测试文本会被发送到服务器吗?

不会。匹配过程完全在你的浏览器中通过内置引擎完成,你输入的任何内容都不会被上传、记录或存储,可以放心用真实甚至敏感的数据进行测试。