Sam Giraffe wrote: > I need some help in expanding a hostrange as in: h[1-100].domain.com > should get expanded into a list containing h1.domain.com to > h100.domain.com. Is there a library that can do this for me? I also need > to valid the range before I expand it, i.e., h[1*100].domain.com should > not be accept, or other formats should not be accepted.
To get you started: import re import itertools def to_range(s, sep="-"): """ >>> to_range("9-11") ['9', '10', '11'] """ lo, hi = s.split(sep) return [str(i) for i in range(int(lo), int(hi)+1)] def explode(s): """ >>> list(explode("h[3-5].com")) ['h3.com', 'h4.com', 'h5.com'] """ parts = re.compile(r"(\[\d+-\d+\])").split(s) parts[0::2] = [[p] for p in parts[0::2]] parts[1::2] = [to_range(p[1:-1]) for p in parts[1::2]] return ("".join(p) for p in itertools.product(*parts)) if __name__ == "__main__": dom = "h[1-3]x[9-11].com" print(dom) for name in explode(dom): print(" {}".format(name)) -- https://mail.python.org/mailman/listinfo/python-list