# 正则表达式测试使用教程：实时高亮匹配，捕获组一目了然

> 来源：工具派（https://gjupai.com） 原文页面：https://gjupai.com/tutorial/regex-tester-guide

## 工具简介

**正则表达式可视化测试**是工具派出品的一款在线正则调试工具。你只需要在输入框中写下正则表达式、粘贴一段测试文本，工具就会**实时**给出匹配结果，并用多种颜色高亮每一处命中，完全不需要安装任何软件，也不用写一行代码。

它的核心能力包括：

- **实时匹配高亮**：边输入边匹配，每一处命中都用不同颜色标记，鼠标悬停还能查看该匹配的捕获组内容。
- **捕获组详情表格**：自动列出每个匹配的序号、匹配内容、所在行列位置以及全部捕获组，支持一键复制。
- **替换模式**：支持 `$1`、`$2` 等反向引用，实时预览替换后的全文结果。
- **常用正则模板库**：内置手机号、邮箱、URL、身份证号等 14 种常用正则，点一下即可载入。
- **代码生成**：把当前正则一键转换为 JavaScript / Python / Java 三种语言的可用代码片段。
- **语法速查表**：内置字符、边界、量词、分组、字符类五大类常用语法对照表，新手也能快速上手。

## 适用场景

- **写代码前验证正则**：在把正则写进项目代码之前，先用真实文本验证它是否能正确命中，避免上线后才发现匹配偏差。
- **排查"为什么不匹配"**：正则写错了往往很难肉眼看出问题，通过高亮结果可以直观看出命中了哪些、漏掉了哪些。
- **学习正则表达式**：配合内置的语法速查表和模板库，边改边看结果，是学习正则最高效的方式之一。
- **批量提取信息**：从日志、网页、文档中提取手机号、邮箱、URL 等结构化信息，确认无误后复制结果或生成代码。
- **文本批量替换**：利用替换模式和反向引用，快速完成日期格式转换、号码脱敏等文本加工任务，并预览最终效果。

## 使用步骤

### 1. 输入正则表达式

打开工具页面后，顶部是正则输入区。在两个红色的 `/` 斜杠之间输入你的正则表达式，例如 `\d{4}-\d{2}-\d{2}`。如果你还不确定怎么写，可以点击输入区上方「常用正则」一栏中的模板按钮（如**手机号**、**邮箱**、**URL**），工具会自动填入对应的表达式和标志位。

### 2. 设置标志位（可选）

输入框右侧有 `g`、`i`、`m`、`s`、`u` 五个标志位按钮，点击即可开启或关闭，蓝色表示已启用。默认开启 `g`（全局匹配）。各标志位的含义见下文「参数与选项说明」。

### 3. 粘贴测试文本

在左下「测试文本」区域粘贴你要匹配的原始文本。工具**无需点击任何按钮**，输入的同时就会实时执行匹配。

![工具主界面：顶部已填入正则表达式（如 \d{4}-\d{2}-\d{2}）并开启 g 标志位，左侧测试文本框已粘贴示例文](article/202607/1783946543634_9016.png)

### 4. 查看高亮匹配结果

右侧「匹配结果」区域会显示原文，所有命中的内容会用黄、绿、蓝、粉等颜色循环高亮。正则输入区下方会显示 `✓ 匹配到 N 处`；如果正则有语法错误，则会显示红色错误提示。鼠标悬停在任意高亮块上，可以看到该匹配的捕获组明细。

### 5. 查看捕获组详情

当存在匹配结果时，页面下方会出现「捕获组详情」表格，依次列出每个匹配的**序号、匹配内容、位置（第几行第几列）以及组 1、组 2……** 等捕获组内容。点击右上角「复制结果」，可以把整张表格以制表符分隔的文本形式复制到剪贴板，方便粘贴到 Excel 进一步处理。

![页面下方的『捕获组详情』表格展开状态：表格包含序号、匹配内容、位置（几行几列）和组1、组2等列，列出了多个匹配行，右上角](article/202607/1783946543884_7404.png)

### 6. 使用替换模式（可选）

点击「替换模式」按钮，页面会出现「替换文本」输入框。在其中填写替换内容，支持使用 `$1`、`$2` 等反向引用插入捕获组内容。右侧区域会实时显示替换后的完整文本，确认效果后点击「复制」即可取用。

![替换模式界面：已点击『替换模式』按钮，出现替换文本输入框并填入含 $1、$2 反向引用的替换内容，右侧区域实时显示替换后](article/202607/1783946544152_8416.png)

### 7. 生成代码（可选）

只要输入了正则表达式，页面底部会自动出现「代码生成」面板。点击 `JS`、`PYTHON`、`JAVA` 切换目标语言，即可得到可直接粘贴到项目中的代码片段，标志位也会自动转换为对应语言的写法。

## 参数与选项说明

| 参数 | 说明 | 默认值 / 可选值 |
| --- | --- | --- |
| 正则表达式 | 在两个 `/` 之间输入的匹配规则 | 无默认值，必填 |
| 标志位 `g` | 全局匹配，找出所有命中而不是第一个 | 默认开启 |
| 标志位 `i` | 忽略大小写 | 默认关闭 |
| 标志位 `m` | 多行模式，`^` 和 `$` 匹配每一行的首尾 | 默认关闭 |
| 标志位 `s` | 点号 `.` 也匹配换行符 | 默认关闭 |
| 标志位 `u` | Unicode 模式 | 默认关闭 |
| 工作模式 | 「匹配模式」查看高亮与捕获组；「替换模式」预览替换结果 | 默认匹配模式 |
| 替换文本 | 替换模式中填入的新内容，支持 `$1`、`$2` 反向引用 | 空 |
| 代码生成语言 | 生成 JS / PYTHON / JAVA 三种语言的调用代码 | 默认 JS |

## 实用技巧

- **先从模板改起**：不确定语法时，先点一个接近的常用模板（如「日期 YYYY-MM-DD」），再在它基础上微调，比从零写快得多。
- **善用多色高亮数匹配**：高亮颜色按黄、绿、蓝、粉、紫、橙、青、红循环，通过颜色交替可以直观看出每个匹配的边界，尤其适合检查贪婪/非贪婪匹配的差异。
- **悬停查看捕获组**：带有捕获组的高亮块，鼠标悬停即可看到「组1=xxx, 组2=xxx」，不用展开下方表格。
- **行列位置定位错误**：捕获组详情表格里的「位置」精确到行和列，排查长文本（如日志）中的异常命中时非常好用。
- **替换前先看预览**：替换模式是实时预览的，确认结果完全符合预期后再复制，避免反向引用编号写错导致数据错乱。
- **忘了语法就查速查表**：点击「语法速查」按钮，字符、边界、量词、分组、字符类五大类常用写法一屏看全。

## 常见问题

**Q1：为什么我输入正则后没有任何高亮？**

请检查三点：① 正则和测试文本是否都已填写，两者缺一不可；② 正则输入区下方是否出现红色语法错误提示，如有请先修正表达式；③ 是否确实没有命中——可以把正则简化一部分试试，或者开启 `i`（忽略大小写）标志位再观察。

**Q2：匹配到 N 处的「N」和我预期的不一样怎么办？**

最常见的原因是标志位 `g` 没开（只找第一个匹配），或者量词写成了贪婪模式导致一次匹配"吃掉"了过多内容。可以在量词后加 `?` 改为非贪婪匹配（如 `.*?`），再观察高亮边界的变化。

**Q3：替换文本里的 `$1` 是什么意思？**

`$1`、`$2` 表示正则中第 1、第 2 个圆括号捕获组匹配到的内容。例如用 `(\d{4})-(\d{2})-(\d{2})` 匹配日期，替换文本写 `$1年$2月$3日`，就能把 `2026-07-13` 替换为 `2026年07月13日`。

**Q4：生成的代码可以直接用吗？**

可以。「代码生成」面板会根据当前的正则和标志位，生成 JavaScript、Python 或 Java 的完整调用示例，并已自动处理好反斜杠转义。其中 Python 版本会把 `i`、`m`、`s` 标志位转换为 `re.IGNORECASE`、`re.MULTILINE`、`re.DOTALL`。

**Q5：点击「复制结果」复制出来的是什么格式？**

是制表符（Tab）分隔的纯文本，包含序号、匹配内容、位置和各个捕获组，直接粘贴到 Excel 或 WPS 表格中会自动分列，方便做进一步的数据清洗和统计。

