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 :

Regex récupérer groupes entre crochets [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre actif

    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2007
    Messages : 503
    Points : 292
    Points
    292
    Billets dans le blog
    1
    Par défaut Regex récupérer groupes entre crochets
    Bonjour,

    Je voudrais faire une regex pour récupérer des éléments contenus dans une variable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $formule = '((100-[4204,204])/(100-[4271]))*100'
    je voudrais isoler les groupes entre crochets soit : [4204,204] et [4271]

    voici le bout la regex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    preg_match('/\[((\d+)[,]?)*\]/', $formule, $matches, PREG_OFFSET_CAPTURE);
     
    print_r($matches);
    et je ne récupère pas tout ce que je veux
    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
    Array
    (
        [0] => Array
            (
                [0] => [4204,204]
                [1] => 6
            )
     
        [1] => Array
            (
                [0] => 204
                [1] => 12
            )
     
        [2] => Array
            (
                [0] => 204
                [1] => 12
            )
     
    )
    merci de votre aide !

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $formule = '((100-[4204,204])/(100-[4271]))*100';
     
    preg_match_all('/\[[\d,]*\]/Ui', $formule, $matches);
     
    echo '<pre>'; print_r($matches[0]); echo '</pre>';
    Donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Array
    (
        [0] => [4204,204]
        [1] => [4271]
    )
    Sans les crochets :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    preg_match_all('/\[([\d,]*)\]/Ui', $formule, $matches);
     
    echo '<pre>'; print_r($matches[1]); echo '</pre>';
    Donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Array
    (
        [0] => 4204,204
        [1] => 4271
    )

  3. #3
    Membre actif

    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2007
    Messages : 503
    Points : 292
    Points
    292
    Billets dans le blog
    1
    Par défaut
    parfaitement parfait !
    merci

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 10/01/2012, 23h28
  2. [RegEx] Récupérer texte entre crochets
    Par Aspic dans le forum Langage
    Réponses: 3
    Dernier message: 12/07/2011, 22h48
  3. Réponses: 6
    Dernier message: 17/02/2010, 19h48
  4. Regex pour extraire un lien entre crochets
    Par elwario91 dans le forum Bibliothèque standard
    Réponses: 1
    Dernier message: 26/03/2008, 11h34
  5. Réponses: 0
    Dernier message: 19/09/2007, 19h24

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