Регулярное выражение для разбора номера версии

У меня есть номер версии следующей формы:

version.release.modification

где версия, выпуск и модификация являются либо набором цифр, либо символом подстановки '*'. Кроме того, любой из этих номеров (и любой предыдущий.) Может отсутствовать.

Таким образом, следующие действительны и разбираются как:

1.23.456 = version 1, release 23, modification 456
1.23     = version 1, release 23, any modification
1.23.*   = version 1, release 23, any modification
1.*      = version 1, any release, any modification
1        = version 1, any release, any modification
*        = any version, any release, any modification

Но они не действительны:

*.12
*123.1
12*
12.*.34

Может ли кто-нибудь предоставить мне не слишком сложное регулярное выражение для проверки и получения номеров версий, версий и модификаций?

Ответы на вопрос(19)

Ваш ответ на вопрос