正则表达式测试器
使用 Rust regex 引擎(WebAssembly)实时测试正则表达式:高亮匹配、捕获组和命名组、i/m/s 标志以及保存的模式。
输入内容和文件始终留在浏览器中
常用符号
.- 任意字符
\d- 数字
\w- 单词字符
\s- 空白字符
^- 开始
$- 结束
*- 0 次或多次
+- 1 次或多次
?- 0 或 1 次
输入或粘贴用于测试模式的文本,或加载示例。
匹配项
输入模式后,匹配项及其位置和捕获组将显示在这里。
已保存的模式
暂无已保存的模式。
| 名称 | 模式 | 操作 |
|---|
示例
| 名称 | 模式 | 操作 |
|---|
本页内容
输入正则表达式,测试文本中的每个匹配都会随输入实时高亮,下方列出位置和捕获组。模式运行在编译为 WebAssembly 的 Rust regex crate 上,因此语法和行为遵循 Rust,而不是 JavaScript。
详细功能
支持的语法包括字符类和 Unicode 类(如 \p{Cyrillic})、贪婪和惰性量词、分支、锚点、单词边界 \b、编号组、命名组 (?<name>…) 或 (?P<name>…)、非捕获组以及 (?i) 这样的内联标志。该引擎不支持先行断言、后行断言和 \1 这类反向引用——工具会显示引擎的错误信息。作为交换,匹配时间随输入线性增长,因此 (a+)+$ 这样的模式不会让页面卡死。
标志:i 忽略大小写,m 让 ^ 和 $ 匹配每一行,s 让 . 也能匹配换行;关闭 全局 时只显示第一个匹配。Rust 引擎始终启用 Unicode 模式,因此\w、\d 和 . 都会匹配非 ASCII 的字母、数字和字符。位置是 JavaScript 字符串索引(UTF-16,一个表情占 2)。列表显示前 50 个匹配,计数在 10,000 处停止。
一切都在本地运行。只有点击 保存模式 时,模式才会连同名称、标志和示例文本保存到本浏览器的 localStorage。五个内置示例(电子邮件、IPv4 地址、日期、十六进制颜色、URL)一键即可加载。
实用示例
命名组:(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2}) 作用于 Released 2026-10-06, patched 2026-11-02,得到 2 个匹配;第一个是位于 [9-19] 的 2026-10-06,year 为 2026,month 为 10,day 为 06。
忽略大小写的分支:error|warn 加 i 标志,作用于 ERROR: disk full 和 Warn: low memory 两行,匹配 ERROR 和 Warn。
行锚点:^\w+ 作用于 alpha one 和 beta two 两行时只匹配 alpha;加上 m 标志后匹配 alpha 和 beta。
不支持的先行断言:foo(?=bar) 会被拒绝,并提示 “look-around, including look-ahead and look-behind, is not supported”——改为匹配 foo(bar) 并使用捕获组。
如何使用此工具
输入模式
在 模式 中输入表达式,不需要两侧的斜杠。速查表 列出了最常用的语法。
设置标志
在 标志 下按需勾选 忽略大小写、多行 或 点匹配所有;取消 全局 则只显示第一个匹配。
添加测试文本
将文本粘贴到 测试字符串——匹配会随输入实时高亮。
查看匹配
匹配项 列表显示每个匹配的
[start-end]位置和捕获组。保存或复用
点击 保存模式 保存表达式,之后可从 已保存的模式 中 加载,或从某个 示例 开始。
提示和最佳实践
- 使用断言或
\1的 JavaScript、PCRE 模式需要改写:把周围文本放进捕获组,或在代码中检查条件。 /不需要转义,但字面量点号需要:用\.表示 “.”。- 内联标志在模式中同样有效:
(?i)error等同于勾选 i 标志的error。 - 保存的模式只存在于本浏览器中;清除网站数据会将其删除。
- 在单词两侧使用
\b(\bcolou?r\b),这样colours就不会被当作colour匹配。