Le 14/07/2008 15:33, SAM a écrit :
>>
>>>> ------------------------------------------------------------------------
>>>> function dorepnull(sujet) {
>>>> return sujet.replace(/[[,](null,)*null[\],]/g,
>>>> function(match) {
>>>> return match.substring(0,1) + '#' + (match.length-1)/5
>>>> + match.substring(match.length-1);
>>>> });
>>>> }
>>>> ------------------------------------------------------------------------
>>
>> Puisque les assertions en avant sont reconnues, on peut alors simplifier
>> ------------------------------------------------------------------------
>> function dorepnull(sujet) {
>> return sujet.replace(/[[,](null,)*null(?=[\],])/g,
>> function(match) {
>> return match.substring(0,1) + '#' + match.length/5;
>> });
>> }
>> ------------------------------------------------------------------------
>
> J'aime bien ta notion "simplifier" en allongeant la RegExp :-)
J'ai rajouté 4 caractères à la RegExp, mais j'en ai retiré une bonne
quarantaine dans la fonction, en supprimant un appel à length, un autre
à substring(), deux soustractions et une concaténation, le tout tenant
sur une ligne de moins !!! Oui, moi j'appelle ça simplifier.
> (bon ... encore kek z'années et je commencerai à peut-être y comprendre
> kek chose en expression régulière)
;-)
Peut-être qu'il faut être tombé dedans quand on était petit (j'utilisais
déjà l'éditeur 'vi' il y a plus de vingt ans).