# 正则表达式测试器

测试 JavaScript 正则表达式，支持实时高亮、捕获组和通俗易懂的说明。

https://codeknife.dev/zh/zhengze-biaodashi-ceshi/

## 它能做什么

用你的文本测试正则表达式，高亮显示每个匹配，并列出它的捕获组。模式在带时间限制的独立 worker 中运行，所以回溯严重的模式不会让页面卡死。你输入的任何内容都不会离开你的浏览器。

## 如何使用

1. 输入你的模式，不带两侧的斜杠。
2. 选择标志：`g`（所有匹配）、`i`（忽略大小写）、`m`（多行）、`s`（点号匹配换行符）、`u`（Unicode）和 `y`（粘性）。
3. 粘贴要搜索的文本。匹配会在你输入时高亮，捕获组会出现在列表中。
4. 选中一个匹配，查看它的位置和每个组的值。
5. 打开说明旁边的“快速参考”标签，可以查找某个标记并插入到光标位置。

## 示例

用 `\b\w+\b` 找出一句话中的单词：

```
Hello, world!  →  Hello, world
```

用 `(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})` 通过命名组捕获日期：

```
2026-10-09  →  year 2026, month 10, day 09
```

## 须知

- JavaScript、PCRE2、Rust 和 Go 在各自的引擎上运行；后三者是在你选择时才加载的 WebAssembly 模块。
- Python、Java、.NET、POSIX ERE 和 POSIX BRE 是模拟的：会先检查模式中是否有该风格不支持的语法，再改写并在 PCRE2 上运行。罕见的边界情况可能与真实行为不同，POSIX 的分支会选最长的匹配，而模拟则选第一个匹配的分支。
- 后行断言（`(?<=…)`）和命名组在现代浏览器中可用。
- 如果模式超时，请简化嵌套的量词，例如 `(a+)+`。

## 什么是正则表达式？

正则表达式（regex）是一种用于查找文本的紧凑模式：它描述要找什么，而不是具体的字词。开发者用它来搜索、校验和提取数据。此测试器在各自的引擎上运行 JavaScript、PCRE2、Rust 和 Go 的模式，并在 PCRE2 上模拟 Python、Java、.NET 和 POSIX，所以把模式复制到别处之前，请先确认风格。

## 常见问题

### 这些标志有什么作用？

g 查找所有匹配而不是只找第一个，i 忽略大小写，m 让 ^ 和 $ 匹配每一行，s 让点号匹配换行符，u 启用完整的 Unicode 支持。

### 为什么我的模式因超时而停止？

某些模式在特定文本上可能耗费指数级的时间（灾难性回溯）。测试器会在两秒后停止它们，这样你的页面就不会卡死。

### 我的文本会被发送到别处吗？

不会。模式和文本都在你的浏览器中处理，不会上传任何内容。