All Tools / 开发者工具 / 正则表达式测试器 — 在线正则调试工具
/ /
Flag g 全局 i 忽略大小写 m 多行 (^ 和 $ 按行) s dotAll (. 匹配换行) u unicode
预设
测试字符串
结果
匹配 0
输入模式和测试字符串以查看匹配。
捕获组 0
当您的模式使用括号时,捕获组会出现在这里。
速查 点击插入

正则表达式测试器 — 免费在线正则调试工具

这个测试器做什么?

输入模式,输入测试字符串,每条匹配实时高亮。捕获组面板拆开显示每个 (…) 捕获的内容,包括命名组。在工具栏切换 g、i、m、s、u 五个 flag,结果在每次变动时更新。模式无效时,JavaScript 引擎的错误信息出现在状态栏,您直接看到出错的位置。

如何使用

  1. 在工具栏输入框中输入 正则模式
  2. 切换模式旁边的 flag(g、i、m、s、u)。
  3. 在左侧面板输入 测试字符串,匹配实时高亮。
  4. 在右侧面板查看每条 匹配捕获组
  5. 选一个 预设(邮箱、网址、IP、十六进制、日期、电话)加载示例,或点击 速查 中的符号把它插入到模式里。

常见问题

g、i、m、s、u 标志有什么区别?

g(全局)在第一个匹配之后继续匹配,因此你能看到所有匹配项而不仅是一个。i(忽略大小写)让 [A-Z] 也匹配小写。m(多行)让 ^ 和 $ 匹配每一行的开头和结尾,而非整个字符串。s(dotAll)让 . 匹配换行符。u(unicode)启用完整 Unicode 处理——处理 \p{Emoji} 或星平面字符时需要。

为什么我的模式报错 'invalid regular expression'?

通常是未转义的特殊字符或未闭合的分组。括号和圆括号必须配对:(foo、[a-z、foo) 都会报错。若从代码复制,JavaScript 字符串字面量中的反斜杠需要加倍。本工具会显示 JavaScript 引擎的错误信息,让你看清问题所在。

什么是捕获组?

用(圆括号)包裹的内容会被单独捕获并显示在 Capture Groups 面板中。用它提取匹配的某些部分——例如 /(\d{4})-(\d{2})-(\d{2})/ 会捕获年、月、日。用 (?:…) 进行不捕获的分组,用 (?<name>…) 创建命名组。

本工具支持 PCRE 或 Python 正则吗?

它使用 JavaScript 正则引擎(ECMAScript),与 PCRE 相近但不完全相同。现代浏览器支持后顾断言。命名组使用 (?<name>…) 语法。PCRE 的递归模式和条件组不受支持。对于大多数日常模式,其行为与 Python 或 PCRE 一致。

它会把我的正则或测试字符串发送到服务器吗?

不会。正则在你的浏览器中使用 JavaScript 内置的 RegExp 引擎编译和运行,没有任何内容离开你的设备。