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 :

preg_replace en mode ungready mais qui reste gourmand [RegEx]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 47
    Par défaut preg_replace en mode ungready mais qui reste gourmand
    Bonjour j'ai un petit problème avec une regex dans mon moteur de templates.

    <div id="login">
    <!--LOGIN-->
    <p>Bonjour [*PSEUDO*]</p>
    <p>Ton pass est [*PASS*]</p>
    <!--/LOGIN--><!--FIN-->

    <!--TEST-->
    <p>Salut [*TEST*]</p>
    <!--/TEST--><!--FIN-->
    </div>
    Ceci consiste une partie de ma chaine que la regex doit traiter..

    La regex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_replace('#<!--([A-Z-]+)-->(.*)\[\*([A-Z-]+)\*\](.*)<!--/([A-Z-]+)--><!--FIN-->#isU','<!--$1--><!--/$5-->',$this->contenu_moule);
    Normalement seul le
    <!--TEST-->
    <p>Salut [*TEST*]</p>
    <!--/TEST--><!--FIN-->

    devrait partir car les autres indicateurs du .tpl sont remplacés par des valeurs.


    LE but de la manœuvre étant de virer tous les éléments du .tpl qui n'auraient pas été utilisés.

    Merci d'avance pour vos réponses.

    A bientôt

  2. #2
    Membre Expert
    Avatar de DelphiManiac
    Homme Profil pro
    Homme à tout faire
    Inscrit en
    Mars 2002
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Homme à tout faire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 147
    Par défaut
    Cette regex devrait fonctionner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <!--([A-Z-]+)-->(.*?)\[\*([A-Z-]+)\*\](.*?)<!--/([A-Z-]+)--><!--FIN-->
    J'ai juste forçé le mode lazy dans le pattern plutôt qu'en option.

  3. #3
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 47
    Par défaut
    Au fait je me suis rendu compte que le retour de la balise ouvrante pouvait être n'importe quoi dans ma regex de départ.

    J'ai donc modifié afin d'avoir la meme expression en ouverture et en retour.

    Merci beaucoup pour votre aide.

    A bientot.

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 13/02/2015, 13h54
  2. Réponses: 5
    Dernier message: 16/04/2012, 10h35
  3. projet qui marche en mode "hosted" mais pas sous Tomcat
    Par sdesbure dans le forum GWT et Vaadin
    Réponses: 3
    Dernier message: 02/02/2009, 23h54
  4. Réponses: 7
    Dernier message: 20/04/2004, 15h55
  5. Une table qui existe mais qui est inconnu! ?
    Par Nino dans le forum InterBase
    Réponses: 6
    Dernier message: 13/06/2003, 11h47

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