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 :

Récupérer texte entre crochets [RegEx]


Sujet :

Langage PHP

  1. #1
    Expert confirmé
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Points : 4 388
    Points
    4 388
    Par défaut Récupérer texte entre crochets
    Bonsoir à tous,

    J'ai beaucoup de mal avec les expressions régulières et je voudrais trouver un pattern qui permet de récupérer TOUTES les tags entre crochet d'une chaine.

    Exemple :
    bonjour [nom],

    [prenom] va bien ?
    Retournera :
    [nom] et [prenom]
    Dans un array ca sera l'idéal

    Je pense qu'il faut utiliser preg_match_all ou preg_match mais aucune idée du pattern...

    Celui que j'ai trouvé sur le net ne fonctionne pas :
    $pattern = '#(\\[[^\\]]++\\])\s*(\\[[^\\]]++\\]\s*)*(.*)#';
    Voilà, je vous remercie par avance.

    Bonne soirée
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

  2. #2
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    Simplement comme ça :

    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
    $s = 'bonjour [nom],
     
    [prenom] va bien ?';
     
    preg_match_all( '#\[(\w+)]#', $s, $m );
    print_r( $m );
     
    /*
    Array
    (
        [0] => Array
            (
                [0] => [nom]
                [1] => [prenom]
            )
     
        [1] => Array
            (
                [0] => nom
                [1] => prenom
            )
     
    )
    */

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 15
    Points : 23
    Points
    23
    Par défaut
    Est-ce qu'un pattern comme celui-là te conviendrait :
    $pattern='#(\[[^\]]*\])#';

    La différence avec celui de Bisunurs étant que tout contenu mis entre crochet sera sélectionné, espace caractères spéciaux ... Avec le pattern de Bisunurs seul des mots entre crochet seront sélectionnés. Le choix est donc à faire selon les caractères que tu attends entre crochets.

  4. #4
    Expert confirmé
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Points : 4 388
    Points
    4 388
    Par défaut
    Un grand merci à vous deux.

    En effet, celui de Bisunurs me convient mieux car les tags n'ont pas de caractères spéciaux

    Excellente soirée
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

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

Discussions similaires

  1. [RegEx] Récupération de texte entre crochets sous certaines conditions
    Par Aurélien LEQUOY dans le forum Langage
    Réponses: 8
    Dernier message: 05/03/2014, 20h00
  2. [sed] Afficher texte entre crochet
    Par Puma24000 dans le forum Shell et commandes GNU
    Réponses: 9
    Dernier message: 28/05/2013, 22h39
  3. [RegEx] Recherche de texte entre crochets
    Par thib3113 dans le forum Langage
    Réponses: 5
    Dernier message: 18/09/2011, 06h18
  4. [DOM] [Débutant] Récupérer texte entre deux balises
    Par webrider dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 27/02/2007, 09h49
  5. [C# 1.1] Comment récupérer du texte entre des mots connus ?
    Par foolsky dans le forum Windows Mobile
    Réponses: 8
    Dernier message: 26/04/2006, 14h15

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