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