php – 如何在字符串中比较版本#?
我需要比较两个版本#,看看一个是否比另一个更大,并且我真的很难这样做.
版本1:test_V10.1.0.a.1@example 我已经尝试剥离所有非数字字符,所以我会留下: 版本1:10101 从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”).如果两者同时耗尽,那么它们就是平等的. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |