版本号的正则表达式

时间:2011-07-08 01:02:24

标签: c# regex

我想得到这样的比赛:

3.1.0
10.5.1
0.5

可能代表构建版本编号系统。

非匹配:

3.1.

我试过这个正则表达式:

[0-9]+\.[0-9]+

这只获得0.5但不是10.5.1

6 个答案:

答案 0 :(得分:14)

这个怎么样:

\d+(?:\.\d+)+

答案 1 :(得分:3)

这个怎么样?

^\d{1,3}\.\d{1,3}(?:\.\d{1,6})?$

这将匹配Major.Minor和可选修订版。 Major和Minor可以是1-3位数(0-999),Revision可以是6位数。

有效期: 1.1 1.2.3 1.2.123456

无效: 1 1.2。 1.2.1234567 1.2。* 任何带有字母字符的东西

答案 2 :(得分:0)

试试这个:

[0-9]+\.[0-9]+(?:\.[0-9]+)?

答案 3 :(得分:0)

我认为这应该更有意义:

^(?:0|[1-9][0-9]*)(?:\.(0|[1-9][0-9]*))*$

如果数字组成超过1位,则每个数字组件都必须以非零开始。

答案 4 :(得分:0)

这可能是一个老话题,但我发现了同样的问题,发现了一些更简单的解决方案,所以这可能有助于寻找答案的人。 这个(\[0-9\]+\[\.\]?)+符合以下条件:

7.1.1
12.1.1.3.12.442.5463.343.44.5
9
11.1.1
11.1.1

另外如果有人想要只获得数字(或者在点上分割) 这样就可以了:

[0-9]+[\.]?? 

regexhero

答案 5 :(得分:0)

没有彻底地测试它,但那是大家: - )

(?<major>\d+)(?<minor>:\.\d+)?(?<build>:\.\d+)?(?<revision>:\.\d+)?