正则表达式测试器

测试 JavaScript 正则表达式,查看匹配计数、限量高亮和捕获组。浏览器 Worker 限时两秒,可取消。

  • 在浏览器中处理
  • 数据不离开你的设备
  • 免费 · 无需注册
输入 JavaScript 正则表达式,不加两侧斜杠。输入或标志位变化后等待 300 毫秒再匹配。浏览器 Worker 限时两秒;「取消」停止当前运行,超时或取消都没有完整结果。
勾选 g 查找所有匹配,取消勾选只返回第一项。修改此标志位后等待 300 毫秒重新匹配。
匹配时忽略大小写,但不忽略重音:cafe 配合 i 可匹配 CAFE,不能匹配 Café。
让 ^ 和 $ 匹配每一行的开头和结尾。关闭 m 时,这两个锚点针对整段文本。
让点号也能匹配换行符,不改变 ^ 和 $ 的含义。
输入或粘贴待测试文本。修改会停止旧运行,等待 300 毫秒后重新匹配。焦点在本工具内时,Ctrl+L(Mac 为 ⌘+L)清空两项输入及结果,保留标志位。

输入表达式和测试文本后,这里显示高亮及捕获组。

高亮匹配 预览显示前 100,000 个 UTF-16 码元及最多 1,000 处高亮。长文本在栏内滚动;表达式无效时显示未高亮的文本。
匹配详情 运行完成后计数包含全部匹配。列表展示前 100 项及每项的前 20 个组,命名组也按编号显示。每个值最多 1,000 个 UTF-16 码元、合计 100,000 个,缩短处以 … 标记。索引同样按 UTF-16 码元计算。
示例、说明与常见问题 带实际输出的示例、与同类工具的差别,以及常见问题。

常用正则表达式

  • \d+ — 一个或多个数字
  • \w+ — 一个或多个单词字符(字母、数字、下划线)
  • [a-zA-Z]+ — 仅字母
  • ^\s+|\s+$ — 首尾空白字符
  • (\w+)@(\w+.\w+) — 简单邮箱捕获
  • https?://\S+ — URL 链接

实测示例

下表是勾选 g 时测试器返回的结果:

正则测试文本匹配
^1[3-9]\d{9}$13812345678整串匹配(中国大陆 11 位手机号的格式)
[\u4e00-\u9fff]+订单号 12345 已发货订单号、已发货
<.+><a>foo</a><a>foo</a>(贪婪:从第一个 < 到最后一个 >)
<.+?><a>foo</a><a>、</a>(非贪婪)
(?<=\$)\d+cost $4242(后行断言)
^(?<ts>\S+)\s+(?<level>\w+)\s+(?<msg>.+)$2026-04-07T14:23:01 ERROR connection refused1 个匹配;分组为 2026-04-07T14:23:01、ERROR、connection refused

正则只检查格式。^\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[01])$ 会接受 2026-02-31,日期请用日期库解析;手机号正则也只说明位数和号段格式,不代表号码存在。

常见错误

  • 元字符没转义。 . * + ? ( ) [ ] { } ^ $ | \ 都有特殊含义,匹配句点要写 \.。
  • 多行文本里的 ^ 和 $。 不勾 m 时,它们只匹配整段文本的开头和结尾。
  • \w 只匹配 ASCII。 \w+ 在 café 東京 上只匹配到 caf,汉字一个也匹配不到。匹配汉字用 [\u4e00-\u9fff]+ 这样的范围。
  • 嵌套量词。 (a+)+$ 遇到接近匹配的文本时可能耗时很长。原生 JavaScript RegExp 在 Worker 中执行,总时限为两秒,可点「取消」立即停止。超时或取消时没有完整结果。更换输入会停止上一轮。

限制

  • 只支持 JavaScript 语法。 Python 的 (?P<name>...) 会报「Invalid group」,要写成 (?<name>...);为 Go(RE2)、PCRE、Java 写的正则,行为可能不同。
  • 只有 4 个标志。 只能选 g、i、m、s。没有 u,所以 \p{L} 被当作字面文本 p{L};y、d、v 也不可用。
  • 分组按序号显示。 命名分组也显示为「组 1」「组 2」。
  • 全量计数、限量预览。 完成的任务统计全部匹配。高亮覆盖前 100,000 个 UTF-16 码元及最多 1,000 个匹配。列表显示前 100 个匹配、每个匹配的前 20 个组;每个值最多 1,000 码元,合计最多 100,000 码元,缩短的值以 … 结尾。index 按 UTF-16 码元计,匹配前每个 emoji 占 2。浏览器须支持 Worker。
  • 不支持替换。 测试器只查找匹配,不执行 replace()。

FAQ

使用的是哪种正则引擎?

JavaScript(ECMAScript)正则引擎,通过浏览器内置的 RegExp 对象执行。

支持哪些标志位?

g(全局匹配)、i(忽略大小写)、m(多行模式)和 s(dotAll,点号匹配换行符)。可以组合使用。

g 标志位有什么用?

不加 g 只返回第一个匹配。加上 g 后会查找所有匹配。

能显示捕获组吗?

可以。列表显示前 100 个匹配及每个匹配的前 20 个组,缩短的值用 … 标记。