> >>> x=re.compile(r"(?<=\bin).+\b")

Try 

>>> x = re.compile("in (.*?)\b")

.*? is a non-greedy matcher I believe.

Are you using python24/tools/scripts/redemo.py? Use that to test regexes.

Regards, 

Liam Clarke

On Wed, 16 Mar 2005 12:12:32 -0800, Mike Hall
<[EMAIL PROTECTED]> wrote:
> I'm having trouble getting re to stop matching after it's consumed what
> I want it to.  Using this string as an example, the goal is to match
> "CAPS":
> 
>  >>> s = "only the word in CAPS should be matched"
> 
> So let's say I want to specify when to begin my pattern by using a
> lookbehind:
> 
>  >>> x = re.compile(r"(?<=\bin)") #this will simply match the spot in
> front of "in"
> 
> So that's straight forward, but let's say I don't want to use a
> lookahead to specify the end of my pattern, I simply want it to stop
> after it has combed over the word following "in". I would expect this
> to work, but it doesn't:
> 
>  >>> x=re.compile(r"(?<=\bin).+\b") #this will consume everything past
> "in" all the way to the end of the string
> 
> In the above example I would think that the word boundary flag "\b"
> would indicate a stopping point. Is ".+\b" not saying, "keep matching
> characters until a word boundary has been reached"?
> 
> Even stranger are the results I get from:
> 
>  >>> x=re.compile(r"(?<=\bin).+\s") #keep matching characters until a
> whitespace has been reached(?)
>  >>> r = x.sub("[EMAIL PROTECTED]", s)
>  >>> print r
> only the word [EMAIL PROTECTED]
> 
> For some reason there it's decided to consume three words instead of
> one.
> 
> My question is simply this:  after specifying a start point,  how do I
> make a match stop after it has found one word, and one word only? As
> always, all help is appreciated.
> 
> 
> _______________________________________________
> Tutor maillist  -  Tutor@python.org
> http://mail.python.org/mailman/listinfo/tutor
> 
> 
> 


-- 
'There is only one basic human right, and that is to do as you damn well please.
And with it comes the only basic human duty, to take the consequences.
_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to