正则表达式测试

免费在线正则表达式测试工具,支持实时匹配、结果高亮、分组信息展示,内置常用正则模板,免登录打开即用,本地运算保障数据安全。

0 次使用 0
Flags

try-catch 包裹执行,最大匹配数 10000 防止灾难性回溯

常用正则
找到 0 个匹配

匹配结果

Contact us at support@panzipool.com or admin@example.org for help.

分组信息

暂无匹配结果

正则语法速查

语法含义示例
.匹配任意单个字符(除换行)a.c → abc, a1c
*前一个字符出现 0 次或多次ab* → a, ab, abbb
+前一个字符出现 1 次或多次ab+ → ab, abbb
?前一个字符出现 0 次或 1 次ab? → a, ab
{n}精确匹配 n 次a{3} → aaa
{n,m}匹配 n 到 m 次a{2,4} → aa, aaa, aaaa
[abc]字符集,匹配其中任意一个[aeiou] → 元音字母
[^abc]否定字符集[^0-9] → 非数字
\d / \D数字 / 非数字\d+ → 123
\w / \W单词字符 / 非单词字符\w+ → hello
\s / \S空白 / 非空白\s+ → 空格制表符
^ / $行首 / 行尾锚点^hello → 以 hello 开头
()捕获组(ab)+ → abab
(?:)非捕获组(?:ab)+ → 不捕获 ab
(?=)正向先行断言a(?=b) → a 后面跟 b
(?<=)正向后行断言(?<=a)b → b 前面是 a

什么是 ReDoS?灾难性回溯解析

ReDoS(Regular Expression Denial of Service)是一种通过构造恶意输入使正则引擎陷入灾难性回溯的攻击方式,导致 CPU 占用率飙升甚至服务崩溃。

当正则表达式中存在重叠的量词(如 (a+)+ ),引擎在面对特定输入时会尝试所有可能的匹配路径。例如正则 ^(a+)+$ 匹配 aaaaaaaaaaaaaaaaaaaaa! 时,回溯次数呈指数级增长。

本工具内置 ReDoS 防护:最大匹配数限制为 10000 次,执行超时自动中断。在日常开发中,应避免嵌套量词、使用非贪婪匹配(.*?)替代贪婪匹配(.*)、优先使用具体字符类替代 .* 等方式预防 ReDoS。

常见问题

正则测试工具支持哪些标志位?

支持 g(全局匹配)、i(忽略大小写)、m(多行模式)、s(dotAll)、u(Unicode)五种标志位,可自由组合。

如何查看匹配分组信息?

执行匹配后,分组信息卡片会展示每个捕获组的内容和索引,方便调试复杂正则表达式。

是否有 ReDoS 防护?

工具使用 try-catch 包裹执行,最大匹配数限制为 10000,防止灾难性回溯导致浏览器卡死。

贪婪匹配和非贪婪匹配有什么区别?

贪婪匹配(如 .*)尽可能匹配更多字符,非贪婪匹配(如 .*?)尽可能匹配更少字符。例如对字符串 "a(b)c(d)e",\(.*\) 贪婪匹配整个 "(b)c(d)",而 \(.*?\) 非贪婪匹配 "(b)"。

如何匹配中文?

使用 Unicode 属性转义 \p{Han} 可匹配所有汉字,或使用 [\u4e00-\u9fa5] 匹配常用汉字。需开启 u 标志位。