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 :

Traiter une liste variable avec seul pattern


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 15
    Par défaut Traiter une liste variable avec seul pattern
    Bonjour,

    J'ai un fichier qui contient une liste de Commandes avec Paramètres
    Ceux-ci ne sont pas forcément rentré par ligne mais peuvent être une simple chaîne contenant un nombre indéfini de commande+paramètres à la suite.
    Sachant que la liste de paramètres peut varier... ça fait beaucoup de chose variable, et donc de pattern qui se répètent.
    Comme exemple :

    CMD1 P11 P12 P13 P14 CMD2 P21 P22 CMD1 P15 P16 CMD5 P51
    Je travail en C++/Qt, mais je pense que ça ne change rien.
    Je voudrais transformer ça en un tableau multiligne qui décompsera toutes les commande à la suite, et pous chaque commande donnera la liste des arguments.

    tab[CMD1][0]=P11
    tab[CMD1][1]=P12
    ...
    tab[CMD3]=liste vide
    ...
    Je vois pas trop comment faire, j'ai essayé les répétitions avec l'outil pattern{1,} ou {1,4} mais il ne sort jamais la liste des arguments, il ne sort généralement que le dernier arguments...

    Si quelqu'un peut m'aiguiller

    Merci d'avance

    Hervé

  2. #2
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 322
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 322
    Billets dans le blog
    17
    Par défaut
    Une piste...

    Ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
     
    header('Content-Type: text/plain') ;
     
    $s = 'CMD1 P11 P12 P13 P14 CMD23 CMD2 P21 P22 CMD1 P15 P16 CMD5 P51' ;
    $pattern = '/(?:CMD\d+(?: P\d+)*)/' ;
    preg_match_all($pattern, $s, $result) ;
    print_r($result) ;
    Donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Array
    (
        [0] => Array
            (
                [0] => CMD1 P11 P12 P13 P14
                [1] => CMD23
                [2] => CMD2 P21 P22
                [3] => CMD1 P15 P16
                [4] => CMD5 P51
            )
     
    )
    Ce que tu devrais pouvoir traiter sans souci ;-)

    Sinon j'ai aussi ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $pattern = '/(?:(CMD\d+)((?: P\d+)*))/' ;
    Qui donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    Array
    (
        [0] => Array
            (
                [0] => CMD1 P11 P12 P13 P14
                [1] => CMD23
                [2] => CMD2 P21 P22
                [3] => CMD1 P15 P16
                [4] => CMD5 P51
            )
     
        [1] => Array
            (
                [0] => CMD1
                [1] => CMD23
                [2] => CMD2
                [3] => CMD1
                [4] => CMD5
            )
     
        [2] => Array
            (
                [0] =>  P11 P12 P13 P14
                [1] => 
                [2] =>  P21 P22
                [3] =>  P15 P16
                [4] =>  P51
            )
     
    )

Discussions similaires

  1. [MySQL-5.5] ProcStock avec une liste variable d'id en paramètre
    Par hiul dragonfel dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 16/12/2013, 17h25
  2. Réponses: 0
    Dernier message: 13/10/2011, 11h15
  3. Création d'une liste déroulante avec une variable
    Par lou87 dans le forum ASP.NET Ajax
    Réponses: 1
    Dernier message: 12/01/2011, 15h18
  4. Passer une liste variable avec pysqlite
    Par davguez dans le forum Bibliothèques tierces
    Réponses: 2
    Dernier message: 05/07/2010, 10h57
  5. Réponses: 5
    Dernier message: 13/10/2005, 10h19

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