IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Perl Discussion :

regex et hash


Sujet :

Langage Perl

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2006
    Messages : 111
    Par défaut regex et hash
    Bonjour,
    J'aurais voulu utiliser une regex pour chercher la clef d'un hash, mais je ne sais pas comment m'y prendre. je m'explique... la clef pourrait etre "12345; 394857" par exemple et j'aimerais pouvoir sélectionner cette clef quand je cherche 12345 sans la suite...

    quelqu'un pourrait-il m'aider?

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 24
    Par défaut
    Pour utiliser les clefs et valeurs voila ma facon d'utiliser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     %nom_tableau = ( 'N',0, 'F',4);
    $Variable = $nom_tableau{$Valeur};
    En esperant avoir répondu a ta question

  3. #3
    Membre Expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 177
    Par défaut Re: regex et hash
    Citation Envoyé par mauroyb0
    Bonjour,
    J'aurais voulu utiliser une regex pour chercher la clef d'un hash, mais je ne sais pas comment m'y prendre. je m'explique... la clef pourrait etre "12345; 394857" par exemple et j'aimerais pouvoir sélectionner cette clef quand je cherche 12345 sans la suite...

    quelqu'un pourrait-il m'aider?
    Le gros problème d'une telle approche, c'est quela recherche sur une portion de clef, par expression rationnelle, fait perdre tout le bénéfice de la structure du hachage qui est destinée à accélérer les recherches.

    Je m'explique :
    - un hachage est une structure de données qui permet, pour une "clef" de retrouver immédiatement l'élément associé. C'est excessivement performant car il existe une relation entre la clef (prise dans sa totalité) et la position de l'élément en mémoire. Cette relation est souvent appelée "fonction de hachage".
    - Une recherche sur une partie de clef ne peut pas utiliser cette fonction de hachage. En effet, n'ayant qu'une partie de clef, on ne peut pas déterminer la position de l'élément associé en mémoire. Il n'y a, alors, pas d'autre choix que d'examiner TOUTES les clefs (leur liste est connue), pour vérifier lesquelles correspondent.

    Il est évident que ce parcours exhaustif n'a alors rien de performant et qu'il ne tire aucun parti des optimisations du stockage que fournissent les tables de hachage.


    Cependant, connaissant ces contraintes, il est possible de créer une liste des clefs correspondant à un critère, afin de pouvoir indexer une tranche de hachage :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my @clefs_retenues = grep { /mon_motif/ } keys (%hachage);

Discussions similaires

  1. Regex hash / tableau
    Par Deusvx dans le forum Langage
    Réponses: 6
    Dernier message: 22/01/2014, 20h49
  2. [langage] probleme avec un hash de hash
    Par planetevoyage dans le forum Langage
    Réponses: 4
    Dernier message: 06/06/2003, 12h55
  3. Cherche regex...
    Par laurent_h dans le forum C
    Réponses: 4
    Dernier message: 31/03/2003, 11h24
  4. [langage] Créé un hash dans un fichier...
    Par Smooky dans le forum Langage
    Réponses: 3
    Dernier message: 26/03/2003, 08h49
  5. Tables de hash
    Par miss8 dans le forum C
    Réponses: 2
    Dernier message: 16/11/2002, 17h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo