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 :

[EXP] Evaluation dans une expression régulière


Sujet :

Langage Perl

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 9
    Points : 10
    Points
    10
    Par défaut [EXP] Evaluation dans une expression régulière
    Bonjour à tous,

    Petite enigme Expression Régulière...

    Je cherche, en une seule expression régulière, repérer une séquence dans une phrase, y appliquer une fonction perl, et la retourner.

    Ainsi, avec la phrase "'La lettre est <ascii>65</ascii>", je veux récupérer "A"
    (et non "La lettre est A")

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    $_= ' La lettre est <ascii>65</ascii> ';
     
    &#40;$lettre&#41; = /<ascii>&#40;\d*&#41;<\/ascii>/;
    $lettre =~ s/&#40;.*&#41;/chr&#40;$1&#41;/eg;
     
    print "$lettre";
    De cette façon, ma variable contient bien "A", mais je suis passé par 2 expressions. Je cherche un moyen de l'obtenir directement via un ($lettre) = ...

    Merci de votre aide.

  2. #2
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 818
    Points : 499 183
    Points
    499 183
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    my $phrase = ' La lettre est <ascii>65</ascii> ';
    my &#40;$lettre&#41; = $phrase =~ /<ascii>&#40;\d*&#41;<\/ascii>/;
    print chr&#40;$lettre&#41;;
    ça te conviens ou il faut encore creusé

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 9
    Points : 10
    Points
    10
    Par défaut
    Justement, ç'est là toute la difficulté : j'ai besoin d'avoir le traitement chr() inclut dans l'expression régulière, car je dois être en mesure d'appliquer des traitements différents.

    En gros, il faut imaginer une fonction avec deux arguments : la source et l'expression régulière, et avoir en retour le resultat de la capture, avec si necessaire des traitements définis dans l'expression régulière.

    Je sais pas si je suis clair...

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 124
    Points : 145
    Points
    145
    Par défaut
    Hop hop

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $lettre =~ s/.*<ascii>&#40;\d*&#41;<\/ascii>/chr&#40;$1&#41;/eg;
    A vérifier

  5. #5
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Points : 11 625
    Points
    11 625
    Par défaut
    Citation Envoyé par Hide
    Hop hop

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $lettre =~ s/.*<ascii>&#40;\d*&#41;<\/ascii>/chr&#40;$1&#41;/eg;
    A vérifier
    Nan tu vas te retrouver avec le texte :
    Il faut trouver un moyen d'exécuter une commande dans une regex

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 124
    Points : 145
    Points
    145
    Par défaut
    Citation Envoyé par gege2061
    Nan tu vas te retrouver avec le texte :
    Il faut trouver un moyen d'exécuter une commande dans une regex
    Non le '/e' permet d'éxecuter la commande a l'interieur du regex.

    Je viens de vérifier et sa marche nickel pour moi.

  7. #7
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Points : 11 625
    Points
    11 625
    Par défaut
    Citation Envoyé par Hide
    Non le '/e' permet d'éxecuter la commande a l'interieur du regex.

    Je viens de vérifier et sa marche nickel pour moi.
    Ok, je ne savais pas, c'est noté pour la prochaine fois

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 124
    Points : 145
    Points
    145
    Par défaut
    pas de problème

Discussions similaires

  1. Utilisation de variables dans une Expression régulière
    Par Bonjovi51 dans le forum Langage
    Réponses: 4
    Dernier message: 13/03/2008, 12h19
  2. Une date butoire dans une expression régulière
    Par zooffy dans le forum ASP.NET
    Réponses: 4
    Dernier message: 14/02/2008, 11h11
  3. Réponses: 5
    Dernier message: 31/08/2006, 14h34
  4. Parenthèses dans une expression régulière
    Par papyreno dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 10/05/2006, 17h28
  5. Réponses: 6
    Dernier message: 17/08/2005, 13h38

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