On Mon, Nov 26, 2007 at 06:04:54PM +0100, Diez B. Roggisch wrote regarding Re: How to write Regular Expression for recursive matching?: > > lisong wrote: > > > Hi All, > > > > I have problem to split a string like this: > > > > 'abc.defg.hij.klmnop' > > > > and I want to get all substrings with only one '.' in mid. so the > > output I expect is : > > > > 'abc.defg', 'defg.hij', 'hij.klmnop' > > > > a simple regular expression '\w+.\w' will only return: > > 'abc.defg', 'hij.klmnop' > > > > is there a way to get 'defg.hij' using regular expression? > > Nope. Regular expressions can't get back in their input-stream, at least not > for such stuff. > > The problem at hand is easily solved using > > s = 'abc.defg.hij.klmnop' > > pairs = [".".join(v) for v in zip(s.split(".")[:-1], s.split(".")[1:])] >
which is veritably perlesque in its elegance and simplicity! A slightly more verbose version. l = s.split('.') pairs = [] for x in xrange(len(l)-1): pairs.append('.'.join(l[x:x+2])) Cheers, Cliff -- http://mail.python.org/mailman/listinfo/python-list