import re

class StringUtils(object):

    def getStringInBrackets(self, inputstring):
        inputstring=inputstring.strip()
        m = re.search(r"^\(([A-Za-z0-9_.-]+)\)",  inputstring)
        if m is None:
            return inputstring
        return m.group(1)

    def getFileNameFromURL(self,inputstring):
        index=inputstring.rfind("/")
        return inputstring[index+1:]

    def getPackageNameFromURL(self,inputstring):
        filename=self.getFileNameFromURL(inputstring)
        m = re.search(r"(zip|mozjs|.+-)([0-9_.]+)(\.source|\.tar|-src|\.zip|\+md|\.tgz).*",  filename)
        if m is None:
            print "Unable to parse "+filename
            return inputstring
        name = m.group(1)
        if name.endswith("-"):
            name = name[:-1]
        return name

    def getPackageVersionFromURL(self,inputstring):
        filename=self.getFileNameFromURL(inputstring)
        m = re.search(r"(zip|mozjs|.*-)([0-9_.]+)(\.source|\.tar|-src|\.zip|\+md|\.tgz).*",  filename)
        if m is None:
            print "Unable to parse "+filename
            return inputstring
        name = m.group(2)
        return name.replace("_", ".")