[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