Регулярное выражение для номеров версий - PullRequest
3 голосов
/ 08 июля 2011

Я хочу получить такие совпадения:

3.1.0
10.5.1
0.5

, которые могут представлять систему нумерации версий сборок.

Несоответствия:

3.1.

Я пробовал это регулярное выражение:

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

Это получает только 0.5, но не 10.5.1.

Ответы [ 6 ]

14 голосов
/ 08 июля 2011

Что по этому поводу:

\d+(?:\.\d+)+
3 голосов
/ 13 ноября 2012

Как насчет этого?

^\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. * Все, что с альфа-символом

0 голосов
/ 22 ноября 2016

Тщательно не проверял, но вот и все: -)

(?<major>\d+)(?<minor>:\.\d+)?(?<build>:\.\d+)?(?<revision>:\.\d+)?
0 голосов
/ 30 июля 2013

Это может быть старая тема, но я нашел ту же проблему и нашел несколько более простое решение, так что это может помочь кому-то искать ответ.Это (\[0-9\]+\[\.\]?)+ будет соответствовать следующим:

7.1.1
12.1.1.3.12.442.5463.343.44.5
9
11.1.1
11.1.1

дополнительно, если кто-то хочет получить только цифры (или разделить на точки), это поможет:

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

( регулярное выражение )

0 голосов
/ 08 июля 2011

Я думаю, что это должно иметь больше смысла:

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

Каждый числовой компонент должен начинаться с ненулевого значения, если оно больше 1 цифры.

0 голосов
/ 08 июля 2011

Попробуйте это:

[0-9]+\.[0-9]+(?:\.[0-9]+)?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...