* 您的内容不会传输到服务器,所有计算均在浏览器中直接完成
输入正则表达式开始使用
什么是正则表达式测试器?
正则表达式测试器是一个交互式工具,可让您实时构建和测试正则表达式模式。
输入时,匹配的内容会在测试文本中直接高亮显示,详细的匹配列表会显示每个匹配的位置、捕获组和长度。
此工具完全在浏览器中运行——任何数据都不会发送到服务器。
主要功能
- 实时匹配高亮 — 在测试文本中以交替颜色直观显示匹配结果。
- 捕获组检查 — 查看每个匹配的命名和编号捕获组。
- 替换预览 — 测试基于正则的查找和替换,支持 $1、$& 和 '$<name>' 替换标记。
- 模式解析 — 对正则表达式进行逐词分解,显示每个部分的含义(例如 \d+ → "一个或多个数字")。
- 灾难性回溯保护 — 匹配在后台线程中运行并设置超时,避免不良模式导致页面冻结。
- 预设库 — 快速使用常用模式,包括邮箱、URL、IP、电话、密码等。
常见用例
- 学习正则 — 查看每个标记如何参与匹配,并通过示例文本验证您的理解。
- 调试 — 粘贴现有正则表达式并对实际数据进行测试,验证其匹配是否符合预期。
- 数据提取 — 使用捕获组从日志文件、CSV 或结构化文本中提取特定部分。
- 查找替换 — 在代码中应用之前预览复杂的文本转换。
- 验证 — 针对边界情况测试邮箱、电话、URL 等验证模式。
速查表
| 符号 | 含义 | 示例 |
|---|---|---|
| 字符类 | ||
| \d | 任意数字 (0-9) | 123 → matches 1,2,3 |
| \w | 任意单词字符 (a-z, A-Z, 0-9, _) | a1_ → matches a,1,_ |
| \s | 任意空白字符(空格、制表符、换行) | "a b" → space match |
| [...] | 自定义字符类 | [aeiou] → vowels |
| [^...] | 否定字符类 | [^0-9] → non-digits |
| 锚点和边界 | ||
| ^ | 字符串开头 | "^hello" → at start |
| $ | 字符串结尾 | "end$" → at end |
| \b | 单词边界 | "\bword\b" → word |
| \B | 非单词边界 | "\Bing\B" → inside |
| 量词 | ||
| * | 零个或多个 | a* → "", a, aa, aaa |
| + | 一个或多个 | a+ → a, aa, aaa |
| ? | 零个或一个 | a? → "", a |
| {n} | 恰好 n 个 | a{3} → aaa |
| {n,} | 至少 n 个 | a{2,} → aa, aaa |
| {n,m} | n 到 m 个 | a{2,4} → aa, aaa, aaaa |
| *?, +?, ?? | 懒惰模式(尽可能少匹配) | "<.*?>" → shortest match |
| 分组和环视 | ||
| (...) | 捕获组 | (abc)+ → capture abc |
| (?:...) | 非捕获组 | (?:abc)+ → group w/o capture |
| (?<name>...) | 命名捕获组 | "(?<year>\d{4})" |
| (?=...) | 正向前瞻 | q(?=u) → q followed by u |
| (?!...) | 负向前瞻 | q(?!u) → q not followed by u |
| (?<=...) | 正向后顾 | "(?<=@)\w+" |
| (?<!...) | 负向后顾 | "(?<!@)\w+" |
| 转义 | ||
| \n | 换行符 | "line\n" → newline |
| \t | 制表符 | "col\t" → tab |
| \\ | 字面量反斜杠 | "c:\\path" |
| \. | 字面量点号 | "end\." → literal dot |
| \/ | 字面量斜杠 | "path\/to\/file" |
局限性
- 仅限 JavaScript 正则 — 此工具使用浏览器内置的正则引擎。PCRE、Python 等正则风格的匹配行为可能有所不同。
- 旧浏览器不支持后顾 — 后顾断言 (?<=...) 需要 ES2018+。Safari 在 2023 年才添加支持。
- 匹配上限 1,000 — 为保持 UI 响应性,仅渲染前 1,000 个匹配结果。
- 捕获组不在文本中高亮 — 捕获组显示在匹配列表中,而非内联高亮。