TRE
核心事实
全部知识事实 (17)
TRE是由Ville Laurikari开发的一个轻量级正则表达式引擎,采用非回溯的匹配算法
65%已验证TRE是由Ville Laurikari开发的轻量级C语言正则表达式库,支持近似匹配并避免传统正则引擎的回溯性能陷阱
65%待验证TRE不支持反向引用(backreferences)特性
90%待验证TRE的匹配时间与输入长度成线性关系,天然免疫ReDoS攻击
90%待验证TRE不依赖回溯机制进行正则匹配,匹配时间与输入字符串长度呈线性关系
90%待验证TRE项目始于2001年
85%待验证TRE采用的是Ville Laurikari在其2000年硕士论文中提出的tagged DFA方法
85%待验证TRE正则表达式库由芬兰开发者Ville Laurikari开发,采用确定性有限自动机(DFA)算法,保证匹配时间与输入长度呈线性关系
85%待验证实验结果表明,面对(a+)+$类恶意正则表达式模式,Python re模块会长时间挂起,而TRE能够快速返回结果
85%待验证Redis的创始人Salvatore Sanfilippo(antirez)将TRE集成到Redis中,主要是为了支持模糊字符串匹配能力
85%待验证TRE正则表达式库由芬兰开发者Ville Laurikari编写
85%待验证TRE采用了Laurikari在其博士论文中提出的带标记NFA(Tagged NFA)模拟算法
85%待验证TRE在应对ReDoS攻击时表现远优于Python标准库的re模块
85%待验证TRE在处理能让Python re模块陷入数十秒甚至数分钟计算的恶意正则模式时,能在毫秒级完成处理
85%部分验证TRE支持近似匹配(approximate matching),可以在允许一定编辑距离的情况下进行模糊匹配
75%部分验证TRE是由芬兰开发者Ville Laurikari开发的POSIX兼容正则表达式库,不使用回溯算法
75%部分验证TRE采用基于TNFA(Tagged NFA)的算法,时间复杂度为O(n·m),从根本上消除了回溯带来的指数级性能风险
65%