Regexp and multiple groups (with repeats)
mk
mrkafk at gmail.com
Fri Nov 20 07:03:04 EST 2009
Hello,
>>> r=re.compile(r'(?:[a-zA-Z]:)([\\/]\w+)+')
>>> r.search(r'c:/tmp/spam/eggs').groups()
('/eggs',)
Obviously, I would like to capture all groups:
('/tmp', '/spam', '/eggs')
But it seems that re captures only the last group. Is there any way to
capture all groups with repeat following it, i.e. (...)+ or (...)* ?
Even better would be:
('tmp', 'spam', 'eggs')
Yes, I know about re.split:
>>> re.split( r'(?:\w:)?[/\\]', r'c:/tmp/spam\\eggs/' )
['', 'tmp', 'spam', '', 'eggs', '']
My interest is more general in this case: how to capture many groups
with a repeat?
Regards,
mk
More information about the Python-list
mailing list