我有这么多个版本号,2.0.1, 3.0.1, 4.0.1.4, 4.0.6, 4.1.0.24,以后类推,都是4位版本号或3位版本号
如果我在页面上输入最小版本1.0.0,最大版本3.0.1
则匹配到上述2.0.1和3.0.1
如果最小是3.3.3 最大4.0.5
则匹配到4.0.1.4
意思是版本号是比较三位的
求大神写个正则,需求必须要正则,谢谢了
我劝你一句,这个估计没几个人能搞定,你最好不要用正则了。(说实话,这种需求本身就不健康,虽然多年前我也遇到过类似的情况)
如果非要用正则呢,也不是不可以,但是你这个需求比我之前遇到的要复杂,我可以给你一个“匹配两个整数之间范围”的正则,但是还需要额外的处理工作,估计你也做不了(因为 "." 之间的数字其实不是独立的,是依赖于前面的一个数字的,所以这就不好写了,很费脑细胞的)
不过,你可以有另外一种选择:如果可以把版本号转换成一个数字的话就简单多啦,比如:2.1.3 => 2001003,但这需要存储的时候也按这种格式存储,或者额外存储一个这样的数字。并且 “.” 之间的数字要预留出足够的位数才行,但是这种方式足够简单,一行代码就可以搞定。
最后,把代码贴出来:http://www.oschina.net/code/snippet_85589_19550,这是之前做页游写的,然后移植的 java 版,应该没问题,因为游戏 OK。
提示:如果你用 2001003 这种方式的话,最好将代码中的 int 换成 long,这样才能支持足够大的位数。 ######谢谢,的确不好写,只有换种方式考虑了######需求还管怎么实现了?确实是需求不健康...
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。