Re: Regexp multiline

Top Page

Reply to this message
Author: Vincent Caron
Date:  
To: ML Guilde
Subject: Re: Regexp multiline
On mar., 2012-03-13 at 12:57 +0100, Dominique Fournier wrote:
> J'ai essayé des trucs comme :
> preg_grep ('#^pf: .+\(match\): pass (out|in) on (\n|.)+^pf:.+$#sm',
> $logs, PREG_GREP_INVERT);
> Mais cela ne matche pas.
>
> Je suis en PHP, mais c'est un problème de regexp.


Je recommende de passer en analyse ligne par ligne. D'une part parce
qu'on peut résoudre ton problème simplement (utilise un flag $skip=1
pour sauter la ligne au tour de boucle suivant), et d'autre part (raison
principale) parce que ça permet de traiter des logs de taille
arbitraire.

En l'état je suppose que tu dois charger le contenu entier du log dans
$logs en mémoire, ça va pas bien marcher si tu as qq GB de data. A titre
personnel ça m'arrive presque tous les jours :)