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 dans hashage


Sujet :

Langage Perl

  1. #1
    Membre régulier Avatar de scorbo
    Profil pro
    Inscrit en
    décembre 2002
    Messages
    176
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : décembre 2002
    Messages : 176
    Points : 83
    Points
    83
    Par défaut regex dans hashage
    Salut,
    Je bute sur l'utilisation d'expression régulière dans un tableau de hachage. Je défini un hash par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my %hash = ("AB[0-9]+" => "toto1", "ABCD"=>"toto2");
    et après je veux savoir si une variable appartient à cette table de hashage. Pour ça j'utilise, exists. Quand il s'agit de la valeur "ABCD" il la trouve, ya pas de problème, mais quand la vlauer est : "AB0123", par exemple, il ne la trouve pas. Et je sais pas comment lui dire d'interpréter les clés comme étant des expressions régulières ???? Ca marche bien avec un "each", mais j'aimerais savoir si c'est possible avec la commande "exists" ??

    Merci

  2. #2
    Membre expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : septembre 2004
    Messages : 2 177
    Points : 3 161
    Points
    3 161
    Par défaut
    L'opérateur exists ne permettra pas un tel traitement. Il n'y a pas d'autre choix, dans ce type de conception, que de tester TOUTES les clefs du hachage comme expression rationnelle correspondant ou non à une valeur de variable.

    grep permet de le faire relativement simplement, mais c'est quand même un traitement lourd (car exhaustif) !

    Un truc comme ça devrait pouvoir faire l'affaire (non testé) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    @cles_correspondantes = grep { $_ if ($valeur =~ /$_/) } keys (%hash);
    La FAQ Perl est par ici
    : La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !

  3. #3
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : avril 2003
    Messages : 6 245
    Points : 8 560
    Points
    8 560
    Par défaut
    Tu peux aussi utiliser List::Util::first si tu n'as besoin que d'une seul clé correspondante.

    --
    Jedaï

  4. #4
    Membre régulier Avatar de scorbo
    Profil pro
    Inscrit en
    décembre 2002
    Messages
    176
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : décembre 2002
    Messages : 176
    Points : 83
    Points
    83
    Par défaut
    Ok, merci, c'est bien ce que je pensais. Je vais essayer ça.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [RegEx] supprimer <a href...</a> par regex dans pages html.
    Par moldak dans le forum Langage
    Réponses: 10
    Dernier message: 15/11/2012, 16h02
  2. REGEX dans une chaine x;x;x
    Par Kinian dans le forum Requêtes
    Réponses: 4
    Dernier message: 26/10/2007, 17h20
  3. Regex dans la fonction replace ?
    Par Mr6 dans le forum VBScript
    Réponses: 3
    Dernier message: 19/03/2007, 14h51
  4. regex dans fichier XML
    Par pouss dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 10/10/2006, 09h35
  5. [langage] Tableau dans hashage
    Par iago dans le forum Langage
    Réponses: 2
    Dernier message: 26/01/2004, 16h19

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