public static function parse($version) { $result = new Version(); if (preg_match('/^(\\d+)(\\.(\\d+)(\\.(\\d+)([.-](\\d+))?)?)?([a-z])?([ -]?rc(\\d+))?$/', $version, $matches)) { $result->major($matches[1]); if (isset($matches[3])) { $result->minor($matches[3]); if (isset($matches[5])) { $result->revision($matches[5]); if (isset($matches[7])) { $result->build($matches[7]); } } } if (isset($matches[8])) { $result->variant($matches[8]); } if (isset($matches[10])) { $result->rc($matches[10]); } } return $result; }