正则体检/规范检查
检测正则表达式中的错误模式和风险,包括灾难性回溯、未锚定模式等,并提供重写建议
正则表达式体检工具
概述
正则体检工具分析正则表达式中的常见反模式、性能问题和正确性问题,帮助您编写更好、更安全、更高效的正则表达式。
检测的问题
关键问题(性能)
- 灾难性回溯:像
(a+)+这样的嵌套量词可能导致指数级时间复杂度 - 二次行为:像
(.*)*这样的模式表现出 O(n²) 性能 - 无界重复:没有最大长度限制的贪婪量词
错误问题(正确性)
- 未转义的点:使用
.时实际意思是 . (字面点) - 缺少锚点:模式可以在文本的任何位置匹配
- 无效字符类:像
[a-Z]这样的范围包含意外字符 - 八进制转义:现代正则中模糊的