带有反向引用的正则表达式匹配问题的复杂度
数据结构与算法
2026-05-11 v1 计算与语言
摘要
ReDoS 是一种已知的算法复杂度攻击类型,攻击者会提供精心构造的字符串以耗尽匹配引擎的计算资源。甚至匹配引擎的二次时间行为也曾被成功利用,例如Stack Overflow(2016)和Cloudflare(2019)的重大中断。这激发了一个根本性问题:是否存在可保证在输入字符串长度近线性时间运行的匹配引擎?对于经典正则表达式(REGEX),Thompson 的构造方法可实现线性时间算法。然而,实际引擎支持诸如反向引用等强大功能,这些功能严格扩展了REGEX的表达能力,但不幸增加了ReDoS攻击的风险。本文针对带有反向引用的正则表达式(REWBs)进行细粒度复杂度分析。具体考虑 -use -REWBs。在 hardness 方面,我们证明,对于 -REWBs 的字符串匹配问题,无法在 时间复杂度下解决任何 的情况下(基于 SETH)。我们还证明该问题在参数化为REWB表达式长度时为 \textbf{W[2]}-硬,这强化了以往的 \textbf{W[1]}-硬ness。此外,我们证明对于 -use -REWBs 的问题,除非三角检测问题可在该时间范围内解决,否则无法在 时间内解决。在算法方面,我们提出一种用于 -use REWBs 的 时间算法,这显著优于Nogami 和 Terauchi(MFCS, 2025)的最近 时间算法。我们的算法采用若干技术,包括后缀树、REGEX的迁移幺半群、分解森林数据结构以及字符串的周期性。
引用
@article{arxiv.2605.07289,
title = {On the Complexity of the Matching Problem of Regular Expressions with Backreferences},
author = {Soh Kumabe and Yuya Uezato},
journal= {arXiv preprint arXiv:2605.07289},
year = {2026}
}
备注
Full version of ICALP 2026; The abstract field is slightly shorter than that in the paper due to arXiv's length limit