I need a regex expression which returns the start to the x=ANIMAL for
only the x=Dog fragments so all my entries should be start ...
(something here) ... x=Dog . So I am really interested in fragments 1
and 3 only.
My idea (primitive) ^start.*?x=Dog doesn't work because clearly it
would return results
start
x=Dog # (good)
and
start
x=Cat
stop
start
x=Dog # bad since I only want start ... x=Dog portion
Looks like the following does the trick:
>>> s = """start #frag 1 start
... x=Dog # frag 1 end
... stop
... start # frag 2 start
... x=Cat # frag 2 end
... stop
... start #frag 3 start
... x=Dog #frag 3 end
... stop"""
>>> import re
>>> r = re.compile(r'^start.*\nx=Dog.*\nstop.*', re.MULTILINE)
>>> for i, result in enumerate(r.findall(s)):
... print i, repr(result)
...
0 'start #frag 1 start\nx=Dog # frag 1 end\nstop'
1 'start #frag 3 start\nx=Dog #frag 3 end\nstop'
-tkc
--
http://mail.python.org/mailman/listinfo/python-list