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

概述

前言:

  在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

最后

以上就是野性手套为你收集整理的关于正则效率问题(正则导致程序卡死)的全部内容,希望文章能够帮你解决关于正则效率问题(正则导致程序卡死)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部