大神求帮忙写个java正则表达式

调皮的XD 发布于 2015/10/19 16:20
阅读 177
收藏 0

我有这么多个版本号,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

意思是版本号是比较三位的

求大神写个正则,需求必须要正则,谢谢了

加载中
0
Courage
Courage

我劝你一句,这个估计没几个人能搞定,你最好不要用正则了。(说实话,这种需求本身就不健康,虽然多年前我也遇到过类似的情况)

如果非要用正则呢,也不是不可以,但是你这个需求比我之前遇到的要复杂,我可以给你一个“匹配两个整数之间范围”的正则,但是还需要额外的处理工作,估计你也做不了(因为 "." 之间的数字其实不是独立的,是依赖于前面的一个数字的,所以这就不好写了很费脑细胞的)

不过,你可以有另外一种选择:如果可以把版本号转换成一个数字的话就简单多啦,比如:2.1.3 => 2001003,但这需要存储的时候也按这种格式存储,或者额外存储一个这样的数字。并且 “.” 之间的数字要预留出足够的位数才行,但是这种方式足够简单,一行代码就可以搞定。

最后,把代码贴出来:http://www.oschina.net/code/snippet_85589_19550,这是之前做页游写的,然后移植的 java 版,应该没问题,因为游戏 OK。

提示:如果你用 2001003 这种方式的话,最好将代码中的 int 换成 long,这样才能支持足够大的位数。

调皮的XD
调皮的XD
谢谢,的确不好写,只有换种方式考虑了
0
oneryx
oneryx
需求还管怎么实现了?确实是需求不健康...
返回顶部
顶部