[Perl] problème mise au point regexp

Yon anaseto at bardinflor.perso.aquilenet.fr
Lun 27 Mar 19:56:49 CEST 2017


On Mon, Mar 27, 2017 at 07:39:32PM +0200, Eric DUVAL wrote:
> Bonjour,
> 
> Je sors un peu du contexte purement perl, j'en suis désolé, perl est mon ami
> pour la mise au point de cette regexp par contre le moteur pcre de syslog-ng
> ne l'a pas été! ;-)
> 
> Le moteur PCRE dans syslog-ng ne réagit de la même façon que PERL.
> Du coup impossible de mettre au point correctement la règle.
Ah, peut-être que les regexps syslog-ng ne connaissent pas les
assertions "look-around". Peut-être que ceci (à adaptations près, je
sais pas comment sont les regexp syslog-ng) marcherait :

    s{([?&]) ([^?&=]+) = ([^&"]+)}{$1$2=xxx}xg

l'inconvénient c'est que j'ai peur qu'il y ait plus de chances que ça
modifie potentielement des trucs en trop. Peut-être qu'il vaut mieux
quelques précautions de plus dans les classes de charactères en
interdisant les espaces :

    s{([?&]) ([^?&=\s]+) = ([^&"\s]+)}{$1$2=xxx}xg

-- 
Yon


Plus d'informations sur la liste de diffusion Perl