正则与文本处理指南

正则回溯:识别危险模式并限制输入

识别歧义重复模式,为校验限定输入,避免在浏览器运行超长危险样例。

Nav Tools ·

寻找歧义重复

嵌套或重叠重复可能让回溯引擎探索同一输入的多种切分方式。

末尾失败的近似匹配可能比成功样例慢很多,短合法样例不能证明运行安全。

Ambiguous example: ^(a+)+$
Simpler equivalent for this language: ^a+$
Use only short inputs when inspecting the first pattern.

简化可接受语言

嵌套重复没有增加真实语法要求时,可改为单次重复;复杂格式优先解析器或安全正则引擎。

完整值校验应锚定并采用具体字符类,但锚点本身无法消除回溯。

限制输入与执行时间

对不可信文本先限制长度,服务端尽量隔离计算或使用复杂度可预期的引擎。

本站正则测试在 Worker 中运行,执行上限 1.5 秒;这保护页面,不会保护复制到后端的表达式。

不要假设所有工具都有隔离

本站查找替换与正则测试走不同执行路径,不要用替换工具压测可疑模式。

先审查模式,再在隔离环境测受控小样例,并把接近成功但失败的输入纳入生产验证。

参考资料

← 正则与文本处理指南