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 :

[langage] problème stockage variable dans expression régulière


Sujet :

Langage Perl

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 73
    Points : 66
    Points
    66
    Par défaut [langage] problème stockage variable dans expression régulière
    Hello
    Je veux récupérer une valeur dans une chaine qui se présente par exemple comme ceci:
    N|12|
    ou N|2|
    je veux récupérer 12 et 2
    je fait comme ceci mais ça ne marche pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    my $str = "N|10|";
    if ($_ =~ /.|([0-9]{1,2})|/)
    {
    	$_ =~ /.|([0-9]){1,2}|/;
    	print "oui";
    	print $1;
    }
    merci d'avance

  2. #2
    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 586
    Points
    8 586
    Par défaut
    A priori ton expression est bonne (d'après ce que j'ai compris de ton but), le seul problème c'est que "|" est un caractère spécial au même titre que "*" ou "+"... Tu dois donc l'échapper comme ceci : "\|" pour que ton expression marche.

    (En effet, | indique une alternative : "(bonjour|hello)" peut reconnaître "bonjour" ou "hello" (l'un ou l'autre))

    EDIT: Par ailleurs, tes parenthèses de capture sont mal placées dans la seconde regex : il faut les placer autour de tous le groupe "([0-9]{1,2})" sinon en faisant "([0-9]){1,2}" tu ne récupèreras que le dernier chiffre de ton nombre (5 s'il s'agissait de "15" par exemple)

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 73
    Points : 66
    Points
    66
    Par défaut
    ok dac en plus je me suis mélanger les pinceau avec $str et $_

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

Discussions similaires

  1. [XSL] impossible d'utiliser variable dans expression XPATH
    Par pierre.zelb dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 18/01/2006, 07h41
  2. Peux on insérer une variables dans une expression calculé
    Par casse.gueule dans le forum Access
    Réponses: 4
    Dernier message: 20/11/2005, 20h10
  3. [langage] variable dans le path d'un fichier
    Par caro_du_94 dans le forum Langage
    Réponses: 2
    Dernier message: 21/10/2004, 12h03
  4. [langage] trouver une variable dans une autre
    Par BEAUJAULT dans le forum Langage
    Réponses: 2
    Dernier message: 19/08/2004, 15h04
  5. [langage] incrementation de variable dans une boucle
    Par mimilou dans le forum Langage
    Réponses: 15
    Dernier message: 16/04/2004, 13h23

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