概述
前言:
在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
最后
以上就是野性手套为你收集整理的关于正则效率问题(正则导致程序卡死)的全部内容,希望文章能够帮你解决关于正则效率问题(正则导致程序卡死)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复