正则表达式测试器与调试器

实时测试和调试您的正则表达式。我们的免费工具提供实时匹配高亮、分组信息和便捷的 JavaScript 正则速查表。

广告
广告

测试正则模式,不上传您的数据

实时正则匹配,含捕获组、标志和速查表——就在您的浏览器中。无需上传,无需注册。

100% 私密
实时匹配
永久免费

使用步骤

  1. 1

    输入您的模式

    在模式输入字段中输入您的正则表达式。使用标志复选框切换 g、i、m、s、u 或 y 修饰符。

  2. 2

    选择标志

    为您的搜索选择适当的标志,例如 'g' 用于全局搜索或 'i' 用于不区分大小写。

  3. 3

    提供测试字符串

    在“测试字符串”区域中输入要测试表达式的文本。可以粘贴最多几兆字节的文本。

  4. 4

    分析结果

    实时查看高亮的匹配,并在结果面板中查看详细的匹配信息,包括捕获组。

强大的正则测试,就在您的浏览器中

实时匹配、详细分组信息和内置速查表。

实时匹配

输入模式时即时看到匹配高亮。无需点击按钮——每次按键都更新结果。

捕获组显示

每个捕获组在完整匹配旁边显示,展示模式中每个组捕获的确切文本。

支持所有标志

独立切换 g(全局)、i(不区分大小写)、m(多行)、s(dotall)、u(unicode)和 y(粘性)标志。

匹配详情

查看每个匹配的索引、长度和捕获文本。非常适合调试具有多个组的复杂模式。

100% 私密

所有正则处理在浏览器中本地完成。您的模式和测试数据永远不会离开您的设备。

免费且无限制

无需注册、无需 API 密钥、无每日配额。对个人和商业用途永久免费。

广告

了解正则表达式

什么是正则表达式?

正则表达式(regex 或 regexp)是定义搜索模式的字符序列。这个概念起源于 1950 年代的理论计算机科学,并由 grep、sed 和 awk 等 Unix 工具普及。如今,几乎所有编程语言和文本编辑器都支持正则表达式,使其成为开发者可以学习的最普遍有用的技能之一。

核心上,正则模式使用字面字符(匹配自身)和元字符(具有特殊含义)的组合来描述要匹配的文本。例如,模式 '\d{3}-\d{4}' 匹配 '123-4567' 格式的任何文本——三个数字、一个连字符和四个数字。正则表达式的强大之处在于它能够简洁地表达复杂的匹配规则。

广告

贪婪量词 vs 懒惰量词

量词 (*, +, ?, {n,m}) 控制模式元素可以重复多少次。默认情况下,量词是贪婪的——它们尽可能多地匹配字符,然后如果整体模式失败则回溯。这可能导致意外结果:模式 '<.*>' 应用于 '' 匹配整个字符串 '',因为 .* 贪婪地消耗直到最后一个 > 的所有内容。

懒惰量词 (*?, +?, ??, {n,m}?) 做相反的事——它们尽可能少地匹配字符。模式 '<.*?>' 应用于 '' 只匹配 ''。懒惰量词通常更适合提取 HTML 标签或匹配引号字符串等任务,在这些任务中您想要最小可能的匹配。

广告

常见用例

正则测试器节省时间的真实场景。

输入验证

在部署到应用程序之前,测试邮箱、电话、URL 和邮编验证模式。

日志解析

使用捕获组从服务器日志、应用日志或访问日志中提取特定字段。

搜索与替换

开发和测试基于正则的查找替换模式,用于代码重构或数据转换。

安全测试

测试用于输入清理和 WAF 规则的模式,针对各种攻击载荷。

与其他正则测试器相比如何?

热门正则测试工具的并排对比。

功能NovaToolsRegex101RegExrVS Code
隐私(无上传)100% 本地上传到服务器上传到服务器本地
价格免费无限制免费含广告免费含广告免费
实时匹配
捕获组
速查表内置
所有 JS 标志g,i,m,s,u,y
移动端友好有限有限
离线可用页面加载后

Regex101 和 RegExr 是优秀的工具,但会将您的测试数据上传到他们的服务器。我们的工具完全在本地处理——您的模式和测试字符串永远不会离开浏览器。

正则表达式快速参考

JavaScript (ECMAScript) 正则表达式语法速查表。

字符类

.

匹配除换行符外的任何单个字符(除非设置 's' 标志)。

示例:a.c → abc, axc
\d

匹配任何数字 (0-9)。等价于 [0-9]。

示例:\d+ → 123
\D

匹配任何非数字字符。

示例:\D+ → abc
\w

匹配任何单词字符(字母、数字、下划线)。

示例:\w+ → hello_123
\W

匹配任何非单词字符。

示例:\W+ → !@#
\s

匹配任何空白字符(空格、制表符、换行)。

示例:\s+ → ' \n'

量词

*

匹配 0 次或多次。

示例:ab* → a, ab, abbb
+

匹配 1 次或多次。

示例:ab+ → ab, abbb
?

匹配 0 次或 1 次(可选)。

示例:colou?r → color, colour
{n}

匹配恰好 n 次。

示例:\d{4} → 2026
{n,m}

匹配 n 到 m 次。

示例:\d{2,4} → 12, 123, 1234

锚点与分组

^

匹配字符串开始(或带 'm' 标志的行首)。

示例:^Hello → 开头的 Hello
$

匹配字符串结束(或带 'm' 标志的行尾)。

示例:world$ → 结尾的 world
\b

匹配单词边界(单词字符与非单词字符之间)。

示例:\bcat\b → cat(不含 category)
(...)

捕获组。记住匹配的文本。

示例:(\d+)-(\d+) → 123-456
(?:...)

非捕获组。分组但不记住。

示例:(?:ab)+ → abab
(?=...)

正向先行断言。断言模式跟随。

示例:\d+(?=px) → '12px' 中的 12

常见问题

什么是正则表达式 (Regex)?
正则表达式是指定搜索模式的字符序列。它是一种强大的工具,用于编程和文本编辑中基于复杂模式查找、替换和验证文本。几乎所有编程语言——JavaScript、Python、Java、C#、Go、Rust 等——以及 VS Code、Sublime Text 和 Vim 等文本编辑器都支持正则表达式。常见用例包括邮箱验证、电话号码提取、日志解析和搜索替换操作。
标志 (g, i, m, s, u, y) 是什么意思?
标志修改搜索行为。'g'(全局)查找所有匹配而非仅第一个。'i'(不区分大小写)忽略字母大小写。'm'(多行)允许开始 (^) 和结束 ($) 锚点匹配每行的开始/结束,而非整个字符串。's'(dotall)允许点 (.) 匹配换行符。'u'(unicode)启用完整 Unicode 支持,包括星平面字符。'y'(粘性)仅从 lastIndex 位置开始匹配。我们的工具让您独立切换每个标志。
为什么某些模式会导致浏览器卡死?
这是由于'灾难性回溯',即编写不当的正则表达式处理特定字符串需要极长时间。这通常发生在嵌套量词如 `(a+)+` 或 `(a*)*` 应用于不匹配的字符串时。正则引擎在放弃前尝试指数级的组合。为避免此问题,请使模式更具体,如果支持则使用原子组,或使用占有量词。如果浏览器卡死,请关闭标签页并简化您的正则表达式。
贪婪量词和懒惰量词有什么区别?
贪婪量词 (*, +, ?, {n,m}) 尽可能多地匹配,然后需要时回溯。懒惰量词 (*?, +?, ??, {n,m}?) 尽可能少地匹配。例如,对 '<a><b>' 应用贪婪模式 '<.*>' 匹配整个字符串 '<a><b>',而懒惰模式 '<.*?>' 只匹配 '<a>'。当您想匹配最小可能的子串时,通常首选懒惰量词。
捕获组如何工作?
括号 () 创建捕获组,记住匹配的文本。组 0 始终是整个匹配。组 1-9 对应从左到右的每组括号。例如,模式 '(\d{4})-(\d{2})-(\d{2})' 应用于 '2026-07-21' 捕获年 (2026)、月 (07) 和日 (21) 作为组 1、2 和 3。我们的工具在完整匹配旁边显示所有捕获组。不需要提取匹配文本时使用 '(?:...)' 作为非捕获组。
什么是先行和后行断言?
先行和后行是零宽断言,检查模式在当前位置是否匹配(或不匹配),但不消耗字符。正向先行 (?=...) 检查模式是否跟随。负向先行 (?!...) 检查是否不跟随。正向后行 (?<=...) 检查模式是否在前面。负向后行 (?<!...) 检查是否不在前面。例如,'\b\w+(?=ing\b)' 匹配以 'ing' 结尾的单词但不包含 'ing' 本身。
此工具对敏感数据安全吗?
安全。所有正则处理使用 JavaScript 原生 RegExp 引擎完全在您的浏览器中完成。您的测试字符串和模式永远不会发送到任何服务器,永远不会被存储,也永远不会被记录。您可以通过检查浏览器的开发者工具 Network 面板来验证——不会发出任何网络请求。这使得该工具可以安全地用于测试敏感日志数据、API 密钥或个人可识别信息的正则表达式。
可以将此工具用于 Python、Java 或其他语言的正则吗?
我们的工具使用 JavaScript 的 RegExp 引擎,支持 ECMAScript 正则规范。大多数基本模式(字符类、量词、组、锚点)在各语言中工作方式相同。但是,一些高级功能有差异:Python 使用 (?P<name>...) 作为命名组,而 JavaScript 使用 (?<name>...),Java 支持占有量词 (a++) 而 JavaScript 不支持,Ruby 有不同的反向引用语法。请始终在目标语言中测试最终正则表达式。
该工具能在移动设备上使用吗?
可以。工具完全响应式,可在 iOS Safari 和 Android Chrome 上运行。界面适应小屏幕,采用堆叠布局——模式输入在顶部,测试字符串在下方,结果在底部。在屏幕上输入正则特殊字符用物理键盘更容易,但该工具在移动设备上完全可用。
可以将此工具用于商业项目吗?
可以。本工具对个人和商业用途均免费,无水印、无需署名、无使用限制。您保留对正则表达式模式和测试数据的完全所有权。无需注册、无需 API 密钥、无需订阅。

私密且安全

此工具由您浏览器自带的 JavaScript 引擎驱动。

  • 数据永远不会发送到我们的服务器,因此您可以完全放心地测试敏感信息。
  • 所有正则匹配、组提取和高亮在您的浏览器中本地完成。
  • 您的模式和测试字符串永远不会被上传、存储或记录。
  • 您可以安全地将此工具用于生产日志数据、API 响应和其他敏感内容。

你可能还喜欢

相关指南

广告