⚡ 在线正则表达式性能测试工具

免费在线正则表达式性能测试工具,对比多个正则的执行速度、匹配结果和回溯次数。支持ReDoS风险检测、批量测试文本、性能排行。无需注册。 | 无需注册 · 数据绝不上传服务器

零依赖·可离线使用

📝 测试文本

🔍 正则表达式列表

安全
安全

📚 正则表达式性能测试能做什么?

正则表达式性能测试工具可以对比多个正则表达式在同一文本上的执行速度,检测ReDoS(正则拒绝服务)风险,帮助开发者编写高效安全的正则表达式。支持多正则对比、风险检测、性能排行。

核心功能

• 多正则对比:同时测试多个正则的执行速度

• ReDoS风险检测:自动分析嵌套量词和交替重叠

• 性能排行:按执行时间排序,直观展示最快正则

• 可调迭代次数:10-10000次,取平均值更精确

• 超时保护:防止恶意正则导致浏览器卡死

使用教程

1. 输入测试文本(或加载示例)

2. 添加要对比的正则表达式和标志

3. 设置迭代次数和超时时间

4. 点击"运行测试"查看性能排行和风险等级

应用场景

正则优化:对比不同写法的性能差异

安全审计:检测用户输入正则的ReDoS风险

教学演示:展示正则回溯对性能的影响

代码审查:验证项目中的正则是否安全高效

扩展知识

正则表达式引擎分为NFA(非确定性有限自动机)和DFA(确定性有限自动机)。JavaScript使用NFA引擎,支持回溯引用但可能产生指数级回溯。ReDoS攻击利用嵌套量词(如(a+)+b)构造恶意输入,使回溯次数指数增长。防御方法包括:限制输入长度、设置匹配超时、使用原子组、避免嵌套量词。

❓ 常见问题

什么是ReDoS攻击?

ReDoS(Regular Expression Denial of Service)是利用正则表达式的回溯特性,构造恶意输入使正则引擎指数级回溯,导致CPU占用过高甚至服务崩溃。例如/(a+)+b/匹配'aaaaaaaaac'会触发大量回溯。

如何判断正则是否有ReDoS风险?

本工具通过分析正则模式中的嵌套量词(如(a+)+、(a*)*)和交替重叠(如(a|a)+)来检测ReDoS风险,并用不同颜色标记风险等级。红色表示高风险,黄色表示中等风险,绿色表示安全。

测试结果中的回溯次数是什么意思?

回溯次数是正则引擎在匹配失败时回退尝试其他路径的次数。回溯次数越高,说明正则效率越低,ReDoS风险越大。好的正则应该尽量减少回溯。

可以同时对比多个正则吗?

可以。支持添加多个正则表达式,对同一测试文本进行性能对比,按执行时间排序,直观展示哪个正则最快。

测试迭代次数可以调整吗?

可以。默认每个正则运行100次取平均值,可调整迭代次数(10-10000)以获得更精确的结果。迭代次数越多结果越稳定,但耗时越长。

如何优化正则表达式性能?

常见优化方法:1.避免嵌套量词;2.使用非捕获组(?:)代替捕获组;3.使用原子组或占有量词减少回溯;4.尽量具体化匹配模式;5.避免交替分支重叠;6.预编译常用正则。

在线正则表达式性能测试工具 | 无需注册 · 数据绝不上传服务器

问题反馈: dexshuang@google.com