Re: Expression régulière multi-lignes

Page principale

Répondre à ce message
Auteur: Patrice Karatchentzeff
Date:  
À: Frédéric Mantegazza
CC: guilde
Sujet: Re: Expression régulière multi-lignes
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
    '---''(_/--'  `-'\_)