public static function getPart($string, $index, $default = null)
    {
        $parts = self::explode($string);

        if ($index < 0) {
            $index = count($parts) + $index;
        }

        return isset($parts[$index]) ? $parts[$index] : $default;
    }