加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 如何在字符串中比较版本#?

发布时间:2020-12-13 22:09:38 所属栏目:PHP教程 来源:网络整理
导读:我需要比较两个版本#,看看一个是否比另一个更大,并且我真的很难这样做. 版本1:test_V10.1.0.a.1@example 版本2:test_V9.7.0_LS@example 我已经尝试剥离所有非数字字符,所以我会留下: 版本1:10101 版本2:970 从10.1.0.a.1中删除了’a’,这样就没有用了,
我需要比较两个版本#,看看一个是否比另一个更大,并且我真的很难这样做.

版本1:test_V10.1.0.a.1@example
版本2:test_V9.7.0_LS@example

我已经尝试剥离所有非数字字符,所以我会留下:

版本1:10101
版本2:970

从10.1.0.a.1中删除了’a’,这样就没有用了,我尝试在’test_’和’@’之间取消所有内容,然后在下划线’_’和下划线右侧删除任何内容本身,但我仍然要在字符串的开头删除’V’.

即使我可以达到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.

解决方法

我想你想考虑使用正则表达式来解析版本号的“数字”部分 – “10.1.0.a.1”和“9.7.0”.在那之后,你可以通过’.’到 split.得到两个“版本数组”.

使用版本数组,您可以弹出元素,直到找到更高的数字.它来自哪个阵列是更高的版本号.如果任一阵列用完,则版本号较小(除非所有剩余的元素都是“0”或“a”或用于表示“基本版本”的任何语义,例如“10.0.0.a.0”== “10.0”).如果两者同时耗尽,那么它们就是平等的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读