Regular Expression question

Fredrik Lundh fredrik at pythonware.com
Mon Aug 21 07:18:06 EDT 2006


stevebread at yahoo.com wrote:
> Hi, I am having some difficulty trying to create a regular expression.
> 
> Consider:
> 
> <tag1 name="john"/>  <br/> <tag2 value="adj__tall__"/>
> <tag1 name="joe"/>
> <tag1 name="jack"/>
> <tag2 value="adj__short__"/>
> 
> Whenever a tag1 is followed by a tag 2, I want to retrieve the values
> of the tag1:name and tag2:value attributes.   So my end result here
> should be
> john, tall
> jack, short

import re

data = """
<tag1 name="john"/>  <br/> <tag2 value="adj__tall__"/>
<tag1 name="joe"/>
<tag1 name="jack"/>
<tag2 value="adj__short__"/>
"""

elems = re.findall("<(tag1|tag2)\s+(\w+)=\"([^\"]*)\"/>", data)

for i in range(len(elems)-1):
     if elems[i][0] == "tag1" and elems[i+1][0] == "tag2":
	print elems[i][2], elems[i+1][2]

</F>




More information about the Python-list mailing list