RE: [PHP] sorting an array of regexes
| From: | Wouter van Vliet | Date: | Tue, 18 Nov 2003 12:52:39 +0000 |
| Subject: | RE: [PHP] sorting an array of regexes | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-170089@lists.php.net to get a copy of this message | ||
> -----Oorspronkelijk bericht-----
> Van: Eugene Lee [mailto:list-php-1@fsck.net]
> 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 ;)