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, Non matching


Sujet :

Langage Perl

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 6
    Points : 4
    Points
    4
    Par défaut Regex, Non matching
    Bonjour,

    j'ai la regexp suivante : :35B:ISIN (\w{12})\n([^:]{0,140})\n

    Quand dans mes données j'ai
    :35B:ISIN XXXXXXXXXXXX
    ABC
    123
    :16S:ORDRDET

    Je récupère bien 2 variables : Une avec XXXXXXXXXXXX et l'autre avec ABC 123

    Par contre, si j'ai
    :35B:ISIN XXXXXXXXXXXX
    :16S:ORDRDET

    je ne récupère plus rien. Or je souhaite récupérer XXXXXXXXXXXX

    Comment faire ?

  2. #2
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Points : 12 256
    Points
    12 256
    Billets dans le blog
    1
    Par défaut
    Normal, dans le second cas, la regex échoue à cause de la classe de caractère [^:] en début de ligne. Et si elle échoue, rien n'est capturée. Tu peux peut-être mettre la seconde partie avec les caractères autres que ":" optionelle:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    :35B:ISIN (\w{12})\n([^:]{0,140})?\n

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Merci mais cela ne semble pas fonctionner

  4. #4
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Points : 12 256
    Points
    12 256
    Billets dans le blog
    1
    Par défaut
    Je viens d'essayer sous le debugger:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $c = ":35B:ISIN XXXXXXXXXXXX\n:16S:ORDRDET"
      DB<2>  print $1 if $c =~/:35B:ISIN (\w{12})\n([^:]{0,140})?/
    XXXXXXXXXXXX
    Donc, ça a l'air de marcher, ça m'imprime bien "XXXXXXXXXXXX".

    Donne-nous plus d'éléments sur ce que tu fais exactement, avec quelles données.

Discussions similaires

  1. [regex] Automatic Match Variables
    Par ellgafsi dans le forum Langage
    Réponses: 7
    Dernier message: 28/04/2009, 14h55
  2. [RegEx] Regex PCRE : Match un type string
    Par V3lkin dans le forum Langage
    Réponses: 9
    Dernier message: 27/11/2008, 17h51
  3. Problème avec regex non trouvé
    Par Damien69 dans le forum Langage
    Réponses: 3
    Dernier message: 31/08/2008, 13h32
  4. Regex , non selection d'une chaine quand un certain mot présent
    Par Adjoint dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 10/07/2008, 22h05
  5. [Regex] Pattern matching
    Par jeRame dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 26/06/2007, 14h28

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