--- "[EMAIL PROTECTED]" <[EMAIL PROTECTED]> wrote:
> Using itertools:
> 
> import itertools
> 
> s = 'ABBBCC'
> print [''.join(grp) for key, grp in itertools.groupby(s)]

Nice.

> Using re:
> 
> import re
> 
> pat = re.compile(r'((\w)\2*)')
> print [t[0] for t in re.findall(pat, s)]

Also nice. Especially nice that it only returns the outer parens. :-)

> By the way, your pattern seems to work in perl:
> 
> $ perl -le '$, = " "; print split(/(?<=(.))(?!\1)/, "ABBBCC");'
> A A BBB B CC C
> 
> Was that the type of regular expressions you were expecting?

Yes. Here's a simpler example without any backreferences:

s = re.split(r'(?<=\d)(?=\D)', '1B2D3')

That works in Perl but not in Python.
Is it that "chaining" assertions together like this is not supported in Python
re?
Or is that the case only in the split function?

Thanks,
/-\



      
____________________________________________________________________________________
Yahoo!7 Mail has just got even bigger and better with unlimited storage on all 
webmail accounts. 
http://au.docs.yahoo.com/mail/unlimitedstorage.html
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to