我是靠谱客的博主 野性手套,这篇文章主要介绍关于正则效率问题(正则导致程序卡死),现在分享给大家,希望可以做个参考。

前言:

  在Java中,正则的使用需要谨慎,好的正则可以方便我们的代码,但是不好的正则,可能成为黑客攻击的漏洞。类似本例子的正则,黑客可以组织不同的匹配字符,使得校验不过,耗尽服务器资源(资源耗尽攻击)。详见正则的状态机原理。

1.说明:2018/8/17:
    校验输入字符串是否合规,允许:100000000000^145^1^1000.00| 100000000000^145^1^1000.00| ....
    如此序列(100000000000^145^1^1000.00|)必须满足1-18个,19个则失败。
    写正则:reg = ^(\d{12}\^\d{3}\^[123456]{1}\^\d+[\.\d+]*\|){1,18}$
代码:
String regex = "^(\d{12}\^\d{3}\^[123456]{1}\^\d+[\.\d+]*\|){1,18}$";
Pattern pattern = Pattern.compile(rege

最后

以上就是野性手套最近收集整理的关于关于正则效率问题(正则导致程序卡死)的全部内容,更多相关关于正则效率问题(正则导致程序卡死)内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(75)

评论列表共有 0 条评论

立即
投稿
返回
顶部