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 :

Un peu perdu [RegEx]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mars 2005
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2005
    Messages : 251
    Par défaut Un peu perdu
    Bonsoir à tous, j'ai un regex qui doit faire ceci :
    Prendre un texte qui peut contenir "...{blabla|blibli|bloblo|...}..." et me sortir chque chaine situé dans {...} et séparée par "|“ soit dans cet exemple : blabla, blibli, bloblo ...

    J'ai ce regex mais il ne sors que "tous les élements moin le derneir" et le dernier.

    Code x : Sélectionner tout - Visualiser dans une fenêtre à part
    #([^\}\{]*)\|([^\}\{\|]*)[\|]?([^\}\{\|]*)#i

    Quelqu'un peut m'aider. j'ai le cerveau qui ne veut plus comprendre

    merci d'avancE.

  2. #2
    Membre émérite Avatar de vorace
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2010
    Messages
    573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2010
    Messages : 573
    Par défaut
    pourquoi pas un explode('|',$chaine) ?

  3. #3
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Bonsoir
    et en utf8, il faut utiliser mb_split()

  4. #4
    Membre éclairé
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mars 2005
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2005
    Messages : 251
    Par défaut
    Bonjour,

    Si j'ai un texte comme celui-ci :
    Nullam sed porta dolor. Mauris condimentum metus sed nisl malesuada ac pretium nulla semper. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum mollis massa id tellus sodales sagittis. Cras varius tempor rutrum. {Fusce tellus quam|vestibulum non varius|nec, laoreet at erat}. Nunc sed turpis a lacus gravida commodo sit amet nec magna. Suspendisse hendrerit ornare velit, faucibus cursus neque imperdiet non. Ut luctus tristique pretium. {Fusce libero libero,|faucibus ut suscipit et,|interdum et elit}. Mauris eleifend sagittis lorem et feugiat. Proin pellentesque lacinia elit, sit amet ullamcorper leo vehicula eu.
    Le split et le explode me semble bien moins approprié qu'un regex, non ?

  5. #5
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Le plus simple est peut-être de combiner les deux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $texte = 'Nullam sed porta dolor. Mauris condimentum metus sed nisl malesuada ac pretium nulla semper. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum mollis massa id tellus sodales sagittis. Cras varius tempor rutrum. {Fusce tellus quam|vestibulum non varius|nec, laoreet at erat}. Nunc sed turpis a lacus gravida commodo sit amet nec magna. Suspendisse hendrerit ornare velit, faucibus cursus neque imperdiet non. Ut luctus tristique pretium. {Fusce libero libero,|faucibus ut suscipit et,|interdum et elit}. Mauris eleifend sagittis lorem et feugiat. Proin pellentesque lacinia elit, sit amet ullamcorper leo vehicula eu. ';
    $pattern = '#\{([^}]*)\}#i';
    $result = preg_match_all($pattern, $texte, $matches);
    $mots = array();
    if ($result) {
        foreach($matches[1] as $match) {
            array_push($mots, explode('|', $match));
        }
    }
    retourne dans $mots :
    Array
    (
        [0] => Array
            (
                [0] => Fusce tellus quam
                [1] => vestibulum non varius
                [2] => nec, laoreet at erat
            )
    
        [1] => Array
            (
                [0] => Fusce libero libero,
                [1] => faucibus ut suscipit et,
                [2] => interdum et elit
            )
    
    )
    Ce n'est pas forcément très optimisé, mais bon...
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  6. #6
    Membre éclairé
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mars 2005
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2005
    Messages : 251
    Par défaut
    Je ne voulais pas à la base mais j'ai choisi cette solution

    Merci beaucoup pour votre aide !

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

Discussions similaires

  1. nouvelle utilisatrice d'opensuse10.2 un peu perdue
    Par luciedoudou dans le forum SUSE
    Réponses: 4
    Dernier message: 21/05/2007, 17h16
  2. Réponses: 19
    Dernier message: 28/07/2006, 11h57
  3. [PEAR] MVC, templates, Pear,..un peu perdu !!
    Par ciel06 dans le forum Bibliothèques et frameworks
    Réponses: 8
    Dernier message: 28/06/2006, 21h09
  4. Un peu perdu avec sql server!
    Par jiluc dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 09/12/2005, 14h14
  5. Réponses: 5
    Dernier message: 13/06/2005, 18h59

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