Volade 生态系统 — 网络工具

正则表达式测试工具

在线即时测试正则表达式:每次键入都会高亮匹配项,匹配表格显示索引、长度与捕获组,替换标签页用 $1 和 $& 应用模式,解释标签页逐段拆解模式,性能标签页评估 ReDoS 风险。免费、无需注册、100% 本地运行:文本绝不离开您的浏览器。

6 种测试模式0 字节发送到服务器10 个即用示例
工具

您的在线正则表达式测试工具

输入模式、勾选标志、粘贴文本:匹配结果会以高亮和表格形式呈现,无需点击「转换」按钮。

正则表达式测试工具

在线 开发、代码 & 数据
登录
快捷键: Ctrl+Enter 重新计算
就绪。

                  
匹配项会随着输入实时高亮显示在原文中。
#匹配结果索引长度分组
输入过程中完成分析、替换与解释 · Ctrl+Enter 重新计算当前标签页 · 不发送任何网络请求 · 100% 本地运行,数据不离开您的设备。
0,0 0评论 所有工具
免费版还是 Premium?

正则表达式测试工具免费且不限量:无需账号、无需安装、不发送任何网络请求。Premium 可解锁整个 Volade 生态系统。

免费高亮显示、匹配项表格与捕获组
免费使用 $1、$& 和命名分组按模式替换
免费模式解释、示例库与速查表
Premium模式与测试片段的加密云端同步
PremiumAPI 访问以及生态工具之间共享的脚本
解锁 Premium
功能

测试、替换与解释正则表达式,不限次数

一个引擎即可完成分析、替换与模式理解——全程不离开您的设备。

高亮与匹配项表格

每处匹配都会在原文中高亮,并列出其索引、长度以及每个捕获组(编号或命名)的取值。各种边界情况均已处理:无匹配的模式、数兆字节的输入、零长度匹配,以及输入框下方提示的 2 000 条结果上限。

测试一个模式

带分组的替换

替换标签页把模式应用到您的源文本并实时显示输出:$1 和 $2 重新注入捕获组,$& 代表完整匹配,$<nom> 代表命名分组。替换次数单独统计;当缺少 g 标志、只会替换第一处时,工具会在输入框下方提醒您。

替换文本

解释、示例与性能

解释标签页把模式拆解为类、转义、分组、断言和量词,并为每一项给出含义与示例。示例标签页内置十个久经考验的模式——邮箱、URL、日期、IPv4、强密码——性能标签页则测量真实执行时间,以便发现灾难性的回溯风险。

浏览模式
工作原理

三步完成模式的编写、检查与修正

无需安装、无需注册:无论手机还是电脑,工具始终就绪。

输入模式

在公共输入框中输入正则表达式,勾选需要的标志:结果会随每次键入重新计算。语法错误会以中文显示在输入框下方——括号未闭合、字符类未闭合、孤立的量词——而不是浏览器的原始报错信息。

粘贴您的文本

文本会被高亮,匹配项表格同时填充。这是人人都会跳过的一步——却也是暴露大多数错误模式的一步:忘记的锚点、未覆盖的大小写、不吞掉换行符的点。

先解释,再测量

切到「解释」逐行阅读模式并修正,再到「性能」确认执行时间远低于提示 ReDoS 风险的 250 ms。本地历史会保留您最近的模式,一键即可重新载入。

快速参考

一眼看懂正则表达式

大多数开发者在阅读模式前会核对的内容——完整速查表见「速查表」标签页。

元素含义示例
.任意字符,但不含换行符a.c → abc
\d一个十进制数字\d{3} → 123
\w一个字母、数字或下划线\w+ → volade_1
\s空格、制表符或回车\s+ → «  »
^ $字符串的开头与结尾^abc$ → abc
*零次或多次,贪婪版本ab*c → ac, abbc
+一次或多次ab+c → abc
?零次或一次colou?r → color, colour
{n,m}n 到 m 次\d{2,4} → 1234
(...)捕获组(ha)+ → haha

「测试正则表达式」是什么意思?

测试正则表达式 (「regex test online」、「tester regex javascript」)就是把模式放到真实文本上运行,观察引擎到底返回什么:匹配到的字符串、它们的位置,以及捕获组的取值。一个「看起来正确」的模式在您的数据上跑过之前说明不了任何问题——教程里的正则和生产环境的正则,差别全在这里。

测试回答三个不同的问题。 是否匹配 :匹配项表格会逐行给出答案。 在哪里、匹配多长 :索引和长度能看出锚点是否放对了位置。 捕获了什么 :编号分组或命名分组能看出您打算提取的部分是否真的被捕获。

真正拉开差距的元字符

点号 . 可代替除换行符以外的任何字符——因此需要 s 标志,文本为多行时尤其需要。量词 *, + 和 ? 是 贪婪的 :在达到足够的重复次数后即停止。后缀 ? (*?, +?, {2,5}?)会反转这一行为,得到 惰性版本,几乎总是应该优先采用它——尤其当 .* 吞掉行尾时。

方括号用于定义字符类: [abc] 接受所列字符中的一个, [^abc] 除它们之外的任意字符, [a-z0-9] 一个区间。注意类开头处的取反—— [^...] 只对第一个位置生效,否则 ^ 会变回字面量。竖线 | 用于分隔备选项,且优先级最低: ^cat|dog$ 表示「整段文本等于 cat」或「整段文本等于 dog」,而不是「开头或结尾是 cat 或 dog」——这时就需要分组: ^(?:cat|dog)$.

分组、前瞻断言与后行断言

圆括号用于捕获。第 1 个分组可通过 $1 在替换侧引用,模式侧则用 \1 引用;命名分组则用 $<nom> 和 \k<nom> ——超过三个分组时可读性好得多。 (?:...) 只分组而不生成编号;只要您分组是为了结构,就应优先选择它。

断言(lookaround)只做检查而不消耗字符: (?=...) 要求后面的内容必须匹配, (?!...) 则禁止它出现, (?<=...) 和 (?<!...) 对前面的内容做同样的检查。这就是在密码中强制要求特殊字符、又不把它算进捕获的方式: ^(?=.*\d)(?=.*[A-Z]).{12,}$.

ReDoS:当正则表达式变成定时炸弹

所谓 ReDoS (Regular Expression Denial of Service) 源于 backtracking :面对几乎合规的输入时,类似 (a+)+$ 的模式会尝试所有切分 « a » 的方式才最终失败,而尝试次数呈指数增长。两条准则:在真实的数据量上测试模式——「性能」标签页会替您完成——绝不要在来自外部、没有大小限制的输入上运行无法审计的正则。在服务器上,卡住的正则会把整个 worker 冻住,直到超时为止。

JavaScript、PCRE、Python:同样的基础,些许差异

测试工具使用浏览器原生引擎,也就是 ECMAScript。基础语法——字符类、量词、分组、前瞻、标志 g i m s u y ——在 PCRE(PHP、Perl)、Python 的 re以及 Java 和 Go 中都是通用的。差异主要在 lookbehind(JavaScript 长期缺失,现已支持)、Unicode 属性,以及类似 (?i)这样的内联标志(PCRE 专有)。因此,把模式从一种语言搬到另一种语言只是细节活——无需重新发明。

推荐给

前端与后端开发者(表单校验、日志解析、数据迁移)、运维与 DevOps(配置过滤、WAF 规则)、测试与分析人员(列提取、格式校验)、编辑与数据分析师(文件清洗)、学生(理解元字符),以及任何需要 正则表达式测试工具 ——快速、完整、私密的人;配套工具还有 JSON 格式化工具、URL 编解码器、Base64 编解码器 以及 JWT 编解码器.

常见问题

关于正则表达式测试工具的常见问题

在测试、替换或解释模式之前,您可能想了解的一切。

如何在线测试正则表达式?

在「正则表达式」输入框中输入模式,勾选 g、i、m、s、u 或 y 标志,然后粘贴文本:匹配项会在原文中高亮,并以表格列出索引、长度和每个捕获组的取值。一切随键入重新计算,无需按钮。

g、i、m、s、u、y 标志分别是什么意思?

g 查找全部匹配而不只是第一处,i 忽略大小写,m 让 ^ 和 $ 在每一行的开头和结尾生效,s 让点也能匹配换行符,u 启用 \p{L} 这样的 Unicode 语法,y 则强制从光标的精确位置开始匹配。这些是 JavaScript 引擎的标志,PCRE 和大多数现代语言照单全收。

如何用正则表达式替换文本?

切换到「替换」标签页,输入模式和替换字符串,然后读取输出。$1、$2 会重新注入捕获组,$& 代表完整匹配,$ 后接分组名则代表命名分组。没有 g 标志时只会替换第一处:工具会在输入框下方提醒您。

如何逐行解释正则表达式?

「解释」标签页把模式拆解成元素——类、转义、分组、断言、量词——并为每一项给出含义和一个具体匹配示例。这是理解项目遗留正则的最快方式,也能验证您刚写的模式确实做了您以为的事。

什么是正则表达式?它有哪些元字符?

正则表达式是描述字符串集合的模式,由模式匹配引擎解释。元字符 . * + ? ^ $ | ( ) [ ] { } 各有含义:点代替任意字符,* 和 + 表示重复,^ 和 $ 用于锚定,| 分隔备选项,圆括号创建捕获组。其他所有字符都是字面量;当它们本身是保留字符时,反斜杠可让它们重新变成字面量。

什么是 ReDoS?如何避免?

ReDoS(Regular Expression Denial of Service)出现在构造不当的模式上——通常是 (a+)+ 这类嵌套备选——面对几乎匹配的输入时,回溯尝试次数呈指数增长。「性能」标签页会在生成的数据量上测量执行时间,一旦超过 250 ms 就会提示风险。在服务器上,请限制输入大小,并优先选择线性引擎。

为什么我的正则表达式没有任何匹配?

最常见的原因:在多行文本上使用 ^ 和 $ 却没加 m 标志、字符类没有正确闭合、缺少 i 标志导致大小写未覆盖、缺少 s 标志时点不匹配换行符,或者模式字面上描述的根本不是您观察到的东西。「解释」标签页一秒钟就能让这些偏差现形。

这个工具会把我的文本发送到服务器吗?

不会:分析、高亮、替换和解释全部在您的浏览器中执行,没有网络请求,也不需要账号,离线同样可用。这一点对于粘贴应用日志、配置文件或包含凭证的数据片段至关重要。模式、标志和文本都保存在设备的本地存储中,一键即可清除。

100% 本地的正则表达式测试工具:文本永不离开您的电脑

与传统的在线正则测试工具不同,这里没有任何一行数据被发送:分析、高亮、替换、解释和性能测量全部在您的浏览器中完成,不依赖第三方库,也不发网络请求。正因如此,您才能粘贴真实的应用日志、配置文件或含凭证的数据片段——即使离线或使用公共网络。模式、标志、文本和历史都留在设备的本地存储中。

许可证 Volade Premium 增加了可选的加密云同步,独立于工具本身——其余功能保持免费、不限量、无需注册。

一份高级许可证,涵盖您所有的网络工具

正则表达式测试工具、JSON 格式化工具、URL 与 Base64 编解码器、JWT 解码器、各类生成器以及数十种免费工具——一份许可证即可拥有整个 Volade 生态系统。

一个许可证,整个优质生态 浏览器 · CMS · 桌面 · 移动 · 脚本 · API · 工具 · Database
一个许可证,通用于所有 升级到优质版 登录