[Tutor] stopping greedy matches

Mike Hall michael.hall at critterpixstudios.com
Fri Mar 18 23:20:38 CET 2005


On Mar 18, 2005, at 1:02 PM, Christopher Weimann wrote:

> On 03/18/2005-10:35AM, Mike Hall wrote:
>>>
>>> A caret as the first charachter in a class is a negation.
>>> So this [^\s]+ means match one or more of any char that
>>> isn't whitespace.
>>>
>>
>> Ok, so the context of metas change within a class. That makes sense,
>> but I'm unclear on the discrepancy below.
>>
>
> The ^ means begining of line EXCEPT inside a charachter class. There it
> means NOT for the entire class and it only means that if it is the very
> first charachter. I suppose you could consider that the there are two
> separate types of char classes. One is started with [ and the other is
> started with [^.
>

Got it, thanks.


>>
>>>
>>> That would be \
>>>
>>
>> Here's where I'm confused. From the Python docs:
>>
>> Special characters are not active inside sets. For example, [akm$] 
>> will
>> match any of the characters "a", "k", "m", or "$"
>>
>
> And the next paragraphs says...
>
>   You can match the characters not within a range by complementing the
>   set. This is indicated by including a "^" as the first character of 
> the
>   class; "^" elsewhere will simply match the "^" character. For 
> example,
>   [^5] will match any character except "5".
>
>

The sad thing is I have read that paragraph before (but obviously 
hadn't absorbed the significance). I'm new to this, it'll sink in. 
Thanks.




More information about the Tutor mailing list