Help with regular expression
antonmuhin.REMOVE.ME.FOR.REAL.MAIL at rambler.ru
Thu Sep 18 11:11:40 CEST 2003
Stephen Boulet wrote:
> I'm trying to write an RE to match a string that might or might not be
> ther and everything past it up to another string that might or might not
> be there and everything past it to a third string that might or might
> not be there and everything past it.
> Say my strings are "STRING1", "STRING2", and "String3".
> Would the re be:
> The goal is to separate the groups by newlines, but I only want the
> first group to match up to the second group and the second to match up
> to the third.
> Normally I would achieve this by typing:
> pat = re.compile(r'((STRING1.*)(STRING2.*)(STRING3.*))')
> m = pat.findall(s)
> s = '\n\n'.join(m)
> but the first group would seem to match everything.
> How can I get it to do what I want?
> -- Stephen
Try non-greedy wildcards: r'((STRING1.*?)(STRING2.*?)(STRING3.*?))'
- - -
should do the trick.
More information about the Python-list