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 :

aide sur une regex


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    273
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Janvier 2007
    Messages : 273
    Par défaut aide sur une regex
    Hello, j'aurais besoin d'un coup de amin sur une regex.
    voilà déjà mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    my $message ="<CR_id>123456789</CR_id>" ;
    # exemple de $message :<WRK_id>123456</WRK_id>
    #ou  <CR_id>123456789</CR_id>
    if ($message =~ m/<(WRK_id|CR_id)>(.+?)<\/$1>/)
    {
    	#my $tmp = trim($1);
    	$workid = $tmp;
    	print $2."\n";
    }
    le but utiliser le premier argument pour le placer à la fin de la regex et récupérer ce qu'il y a entre les deux balises.
    le truc c'est de ne pas accpeter de truc du genre :<CR_id>123456</WRK_id> ou l'inverse. Est ce que vous pourriez me donner une piste?

    Merci

  2. #2
    Membre chevronné Avatar de Beniou
    Homme Profil pro
    Inscrit en
    Novembre 2009
    Messages
    357
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Novembre 2009
    Messages : 357
    Par défaut
    La problème est que tu te sers de $1 dans ta regexp : le réferencement de ce qui a été trouvé par tes premières parenthèses matchantes est : "\1"

    Ce code devrait fonctionner
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if ($message =~ m/<(WRK_id|CR_id)>(.*)<\/\1>/)

  3. #3
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    273
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Janvier 2007
    Messages : 273
    Par défaut
    Ah d'accord ok. Merci

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

Discussions similaires

  1. aide sur une regex
    Par Jérémy Lefevre dans le forum Boost
    Réponses: 3
    Dernier message: 14/11/2014, 16h18
  2. [RegEx] Besoin d'aide sur une regex
    Par kairi084 dans le forum Langage
    Réponses: 13
    Dernier message: 13/02/2014, 11h52
  3. Besoin d'aide sur une regex
    Par El_touristo dans le forum Langage
    Réponses: 3
    Dernier message: 19/11/2010, 18h32
  4. Aide sur une Regex en C# SVP
    Par leoncapri dans le forum C#
    Réponses: 4
    Dernier message: 19/09/2010, 19h01
  5. [Regex C#] Aide sur une regex qui recupere des controles
    Par kerjon dans le forum Général Dotnet
    Réponses: 4
    Dernier message: 14/05/2009, 14h10

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