re question

Tim Evans tre17 at student.canterbury.ac.nz
Sat Oct 16 21:52:55 EDT 1999


"Max M. Stalnaker" <stalnaker at acm.org> writes:

> I have the following code:
> 
>  def subset(self):
>   group=re.search(r"%%%([^%]+)%%%",self.data)
>   self.data=group.groups(0)[0]
> 
> Essentially, I get a html page, change some tags to %%% and extract the
> stuff between.  But the way I do it above fails if the stuff between has a
> single %.  The main goal is to extract the stuff.  The changing the tags is
> just the way I tried and had sometime success.
> 
> Maybe there is a better way to do this.  Or someone could perhaps suggest re
> code that would do it.  Thank you.
> 
> My current idea is to construct a single character sentinel out of something
> greater than chr(128) and use that.  This will probably work in this
> application, but I feel like I am missing something.
> 
> --
> Max M. Stalnaker  mailto:stalnaker at acm.org  http://www.astarcc.com

To match everything between two occurances of %%%, including embedded
%, this expression will work:

get = re.compile(r'%%%(.*?)%%%')

The important part is the *?, which matches the smallest possible
string rather than the largest.

--
Tim Evans





More information about the Python-list mailing list