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 PHP Discussion :

reg ex avec preg_match [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    627
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 627
    Points : 118
    Points
    118
    Par défaut reg ex avec preg_match
    j'ai des données de ce genre et j'aimerais recupérer le bloc 19v5v ou 19v et le bloc 3.95a
    voici les données
    19v5v3.95a
    19v3.95a
    j'ai fait ce code mais ca ne récupère pas ce que je voulais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    preg_match("/([0-9]+v[0-9]*v*)([0-9.]+a)/", $input_line, $output_array);
    voici le résultat
    array(30=>19v5v3.95a1=>19v5v2=>3.95a)
    array(30=>19v3.95a1=>19v32=>.95a)
    merci pour votre aide

  2. #2
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    Comme ça?
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    //preg_match("/([0-9]+v[0-9]*v*)([0-9.]+a)/", $input_line, $output_array);
    preg_match("/([0-9]+v(?:[0-9]+v)*)([0-9.]+a)/", $input_line, $output_array);

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    627
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 627
    Points : 118
    Points
    118
    Par défaut
    un gros bisou à tsuji.trop fort ca marche ca m'énerve la gestion des mots avant ou apres je ne maitrise toujours pas bien.il me faut encore beaucoup de temps

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    627
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 627
    Points : 118
    Points
    118
    Par défaut
    j'ai un peu de mal à voir la différence entre ces 2 codes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_match("/([0-9]+v(?:[0-9]+v)*)([0-9.]+a)/", $input_line, $output_array);
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_match("/([0-9]+v([0-9]+v)*)([0-9.]+a)/", $input_line, $output_array);

  5. #5
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    La différence est que le premier utilise un groupement non-capturé pour la particule [0-9]+v, tandis que le deuxième utilis un groupement normal, donc capturé qu'on peut le faire référencier par compter les sous-matchs par exemple, si on veut...

    La plus simple de la voir est par exemple de faire ça.
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $par=array('/([0-9]+v([0-9]+v)*)([0-9.]+a)/', '/([0-9]+v(?:[0-9]+v)*)([0-9.]+a)/');
    foreach($par as $pattern) {
        preg_match($pattern, $input_line, $output_array);
        print_r($output_array);
    }

    Je cherche google par les mots clés et il est facile à trouver des pages sur le sujet. Comme, par exemple, ceci:
    http://www.rexegg.com/regex-disambiguation.html

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    627
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 627
    Points : 118
    Points
    118
    Par défaut
    merci tsuji.je commence à comprendre mais il faut beaucoup de test

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

Discussions similaires

  1. [RegEx] problème avec preg_match
    Par thewaterkidny dans le forum Langage
    Réponses: 3
    Dernier message: 24/04/2008, 16h57
  2. [RegEx] problème avec preg_match
    Par othmane126 dans le forum Langage
    Réponses: 1
    Dernier message: 15/10/2007, 15h04
  3. Réponses: 23
    Dernier message: 24/05/2007, 10h32
  4. [RegEx] soucis avec preg_match
    Par cassy dans le forum Langage
    Réponses: 3
    Dernier message: 18/04/2007, 15h33
  5. [RegEx] validation avec preg_match
    Par G_Kill dans le forum Langage
    Réponses: 2
    Dernier message: 15/11/2006, 00h45

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