Le 8 juin 2009 14:32, Frédéric Mantegazza
<frederic.mantegazza@???> a écrit :
> Le Lun 8 juin 2009 13:36, Patrice Karatchentzeff a écrit :
[...]
> Je voudrais l'améliorer sur le bloc data. Là, je récupère tout dans le
> groupe 'data'. Mais j'aimerais plutôt avoir un groupe par paire
> clé/valeur, voir un groupe pour chaque. Groupe non nommé, bien sûr.
>
> Est-ce faisable ?
oui si on connait le contexte, d'où ma question...
Si dans ton flux réseau, le bloc data commence par un identifiant
unique, il est plus simple de commencer par :
- détecter l'identifiant
- matcher les paires attendu
- jusqu'à la fin du bloc
Tu fais tout en même temps : ta regexp est alors monstrueuse... du coup,
1) la perf doit être horrible
2) la maintenance impossible
3) l'adaptation très compliquée
Et le plus marrant, c'est que c'est du python ;-)
Ex. en Perl
if (/x10.basic/) { # début du block
if ( /^(.*)=(.*)$/ ) {
$source{$1}=$2
}
next if ( /}/ ) # fin du block
}
Tu retrouves toutes tes paires dans la table de hashage et ça peut
être aussi long que tu veux. C'est lisible et super facile à
maintenir.
N-B : c'est pas testé et il manque des tests : c'est un test-case.
PK
--
|\ _,,,---,,_ Patrice KARATCHENTZEFF
ZZZzz /,`.-'`' -. ;-;;,_ mailto:p.karatchentzeff@free.fr
|,4- ) )-,_. ,\ ( `'-' http://p.karatchentzeff.free.fr
'---''(_/--' `-'\_)