On 20/06/2012 14:30, Christian wrote:
Hi,

i have some trouble to split a pattern like s.   Even have this
problems with the first and last match. Some greedy problems?

Thanks in advance
Christian

import re

s='v1=pattern1&v2=pattern2&v3=pattern3&v4=pattern4&v5=pattern5&x1=patternx'
pattern =r'(?=[a-z0-9]+=)(.*?)(?<=&)'
regex = re.compile(pattern,re.IGNORECASE)
for match in regex.finditer(s):
        print  match.group(1)

My intention:
pattern1
pattern2
pattern3
pattern4
pattern5
patternx

You could do it like this:

import re

s = 'v1=pattern1&v2=pattern2&v3=pattern3&v4=pattern4&v5=pattern5&x1=patternx'
pattern = r'=([^&]*)'
regex = re.compile(pattern, re.IGNORECASE)
for match in regex.finditer(s):
        print match.group(1)

or avoid regex entirely:

>>> values = [p.partition("=")[2] for p in s.split("&")]
>>> values
['pattern1', 'pattern2', 'pattern3', 'pattern4', 'pattern5', 'patternx']
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to