Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/05/2011, 11h43   #1
Nouveau Membre du Club
 
Homme Kevin
Webdesigner & Intégrateur web
Inscription : mai 2011
Messages : 23
Détails du profil
Informations personnelles :
Nom : Homme Kevin
Localisation : France, Loir et Cher (Centre)

Informations professionnelles :
Activité : Webdesigner & Intégrateur web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mai 2011
Messages : 23
Points : 27
Points : 27
Par défaut Remplacement d'une balise qui n'est pas imbriquée dans une autre

Salut,

Après de multiples recherches, je n'arrive pas à obtenir une regex qui match exactement ce que je veut.

Je plante le décors

Je me suis mis en tête d'implémenter pour ma framework MVC perso un moteur et gestionnaire de template. J'ai quasiment finit toutes les fonctions de base sauf cette regex qui me…

Je donne un exemple de template concrêt pour pouvoir expliquer ma problématique :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<h1>{titre}</h1>
 
{EACH livre}
  <span>Créé par quelqun</span>
  <h2>{titre}</h2>
  <p>Ceci est un résumé du livre</p>
 
  {EACH paragraphe}
    <h3>titre</h3>
    <p>Ceci est un résumé du paragraphe</p>
  {/EACH paragraphe}
{/EACH livre}
 
<p>Blablabla</p>
<span>{titre}</span>
 
{EACH dvd}
  <h2>{titre}</h2>
{/EACH dvd}
 
<p>Et voila</p>
<span>{titre} à été créé par moi</span>
Dans cet exemple, je ma parse ma page complète, puis mon each livre, puis each paragraphe, puis each dvd. En sachant bien sûr que dans l'absolu je peut avoir n each imbriqués.

Ma problématique

Je doit simplement à chaque fois que je parse un fragment, trouver une regex qui me permette avec un preg_replace de récupérer le(s) {titre} qui ne sont pas dans le(s) each pour les remplacer. Mais évidemment un titre qui se trouve entre 2 each doit être remplacer.

Par rapport à mon exemple pour le premier parsing ça donne (Remplace les balises en rouge) :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<h1>{titre}</h1>

{EACH livre}
  <span>Créé par quelqun</span>
  <h2>{titre}</h2>
  <p>Ceci est un résumé du livre</p>

  {EACH paragraphe}
    <h3>titre</h3>
    <p>Ceci est un résumé du paragraphe</p>
  {/EACH paragraphe}
{/EACH livre}

<p>Blablabla</p>
<span>{titre}</span>

{EACH dvd}
  <h2>{titre}</h2>
{/EACH dvd}

<p>Et voila</p>
<span>{titre} à été créé par moi</span>

Voila, j'ai pas de regex à vous montrer car j'ai décidé de repartir de zéro pour éviter de m'entêter dans l'erreur.

J'attend pas que vous me donniez la réponse et que vous fassiez le boulot à ma place. Je souhaiterais juste que vous puissiez me donner des idées ou une méthode pour aborder cette regex. Je pense que je doit utiliser une regex récursive pour cibler les each, qu'en pensez vous?

Merci d'avance pour vos réponses.
w3ar3dus1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h16.


 
 
 
 
Partenaires

Hébergement Web