星点 星点-正则工具 本系列首页
关于
版本 v1.0.0

正则性能与安全分析

评估正则的性能与安全风险:统计分组、嵌套、分支、量词与贪婪结构,检测可能导致灾难性回溯(ReDoS)的模式并给出改进建议,同时提供性能计时与可中止的回溯压力测试。

性能与安全 · 工具介绍

某些正则结构(如嵌套量词 (a+)+)在特定输入下会产生指数级回溯,导致服务或页面长时间无响应,这就是 ReDoS。本工具用静态启发式结合计时采样识别这类风险。

复杂度分析给出分组数量、嵌套层级、分支数量、量词数量、贪婪量词与断言数量,并列出高风险结构及原因。

性能测试按设定次数重复匹配并统计耗时;回溯压力测试以递增的输入长度观察耗时是否呈指数增长;测试过程可随时中止。

性能结果受设备、浏览器与负载影响,工具会明确标注测试条件,不将其作为绝对性能结论。

性能与安全 · 功能特点

  • 复杂度分析:分组 / 嵌套 / 分支 / 量词 / 贪婪 / 断言 / 字符类
  • 高风险结构列表与原因说明
  • ReDoS 检测:嵌套量词 / 重叠分支 / 歧义相邻量词
  • 性能测试:按次数计时,统计匹配数量与平均耗时
  • 回溯压力测试:递增输入长度观察耗时增长
  • 单次计时与测试中止
  • 结论标注测试条件与非绝对性

性能与安全 · 使用方法

  1. 输入待评估的正则表达式与 Flags;
  2. 查看 ReDoS 检测结论与复杂度分析;
  3. 设置测试次数后点击“开始测试”,查看耗时与匹配数量;
  4. 点击“回溯压力测试”观察不同输入长度下的耗时;
  5. 测试过程中可点击“中止”,根据建议优化正则。

性能与安全 · 常见问题

Q:什么是 ReDoS?

ReDoS(正则表达式拒绝服务)指某些正则在特定输入下产生灾难性回溯,消耗大量时间与 CPU,可能导致页面或服务无响应。

Q:检测结果是绝对的吗?

不是。工具采用静态启发式与小规模计时采样,属于风险提示;最终应以真实数据与运行环境为准。

Q:如何降低回溯风险?

避免嵌套量词与重叠分支,收窄字符类,使用锚点限定范围;在支持的环境可用原子组或占有量词。

Q:压力测试会卡死页面吗?

压力测试规模有限且可中止,测试过程中会定期让出主线程;仍建议先用小规模验证。

相关工具

继续使用本站其它正则工具:

正则测试器

实时匹配、高亮、捕获组与位置,旗舰测试工具

打开工具

正则搜索

查找全部、上一个/下一个、当前总数与上下文

打开工具

正则替换

支持 $1/$&/$<name> 引用、替换次数与前后对照

打开工具

正则提取

提取全部匹配/捕获组/命名组,支持去重与排序

打开工具

正则文本处理

保留/分割/合并/重排/格式化,专用文本加工

打开工具

正则生成器

条件生成 + 可视化构造 + 示例推导三种方式

打开工具

常用格式正则

手机号/邮箱/URL/IP/日期/身份证等格式库,生成+验证+表单

打开工具

正则解释器

结构拆解 + 中文逐段解释,点击查看详情

打开工具

正则可视化

结构树 + 流程图,直观展示分组/分支/量词

打开工具

学习与参考

元字符/量词/分组/断言/Flags 速查 + 常用正则 + 各语言

打开工具

正则调试器

诊断匹配失败原因与语法错误,给出修正建议

打开工具

多语言引擎

各语言写法、Flags、特性矩阵与兼容性检查

打开工具

正则转换

转各语言/字符串/JSON,含 Flags 与转义处理

打开工具

高级结构

AST、合并、简化、去重与等价分析(改前改后对照)

打开工具