On Tue, Nov 18, 2003 at 01:52:39PM +0100, Wouter van Vliet wrote:
: Eugene Lee suggested:
: > On Tue, Nov 18, 2003 at 01:15:32PM +0100, Adam i Agnieszka
: > Gasiorowski FNORD wrote:
: > :
: > :   There is an array of regexes, for example
: > :
: > :  $array = array('moon', '[wh]ood', '[^as]eed' ...
: > :  (about 300 entries).
: > :
: > :   I want to sort it comparing to the
: > :  character lenght of a regex. For example
: > :  [wh]ood is 4 characters, moon is 4 characters.
: > :  There are only letters of the alphabet and
: > :  letter ranges present in those regexes. I
: > :  want the "longest" ones first.
: > :
: > :   How would you write the sorting function?
: >
: > This might be the most functionally correct, although it's definitely
: > not the fastest route.
: >
: >     function re_len($pat)
: >     {
: >             return strlen(preg_replace('/\[[^]]+]/', '_', $pat));
: 
: I think you meant:
: 
:       /\[[^\]]+]/
: 
: as regex ;) Not sure, but I think one more block-bracked needed to be
: escaped ;)

Nope.  My pattern is legitimate.  Within a range, if the first character
is a closing-square-bracket ']', it is treated as the literal character
and not as the end of range.  If the range starts with a negation '^',
then the same rule applies to the second character.

This is also a sad indication that I really know my regular expressions,
or I need a vacation.  :-)

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to