我需要比较两个版本#来查看一个是否比另一个更大,并且这么做是非常困难的。如何比较版本号的字符串内?
版本1:[email protected] 版本2:[email protected]
我试图剥离所有非数字字符出来,所以我会留下:
版本1:10101 版本2:970
从10.1.0.a.1中删除'a',这样就不行了,我尝试了'test_'和'@'之间的所有内容,然后剥去任何东西在下划线'_'和下划线本身的右侧,但是我仍然必须在str的开始处去掉'V' ING。
即使我可以下降到只是10.1.0.a.1和9.7.0,我怎么能比较这两个?我怎么知道10.1.0.a.1是否大于9.7.0?如果我将小数位去掉,我仍然在1010a1中留下一个非数字字符,但是我需要那个字符来说明我将这个比较的发布版本是10.1.0.b.1,这将会大于10.1.0.a.1。
这使我疯了,有没有人处理过这个?你是如何比较价值的?我使用的是PHP。
+1简单而有效的解决方案 – Scuzzy 2012-04-18 02:00:50
所有的解决方案,将工作,但这是最好的,因为我可以什么都前检查“基地”版本,如果基本版本是同样,我会继续深入该版本。我只希望PHP会比较单个字母字符(如b> a返回true) – user797963 2012-04-18 21:14:46