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 10/10/2007, 11h54   #1
Membre habitué
 
Homme
Inscription : octobre 2003
Messages : 255
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : octobre 2003
Messages : 255
Points : 103
Points : 103
Par défaut Expression regulière pour réaliser un sommaire

Bonjour,

je cherche à réaliser un sommaire en fonction d'une expression régulière qui va m'analyser un texte et en construire le sommaire.(comme un wiki)

j'ai mes titres et sous-titre, etc.....
Citation:
==Titre1==
==Titre2==
===ssTitre1===
====sssTitre1====
====sssTitre2====
====sssTitre3====
.........................
===ssTitre2===
==Titre3==
Mon expression régulière :
Code :
$RegEx = '/==+(.*)==+/i';
Si on utilises :
Code :
preg_match_all($RegEx,$chaine,$Results,PREG_PATTERN_ORDER);
et qu'on affiche le tableau à deux dimensions, j'obtiens
Titre1(ok), ... mais ssTitre1= et sssTitre== Or moi je veux :
Titre1, ssTitre1, sssTitre1

Je ne vois pas ce qui coince dans mon expression régulière.

Merci.
D4rK_C0uaK6 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/10/2007, 18h13   #2
Membre chevronné
 
Inscription : mars 2002
Messages : 611
Détails du profil
Informations personnelles :
Âge : 48
Localisation : France, Var (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : mars 2002
Messages : 611
Points : 761
Points : 761
Essayes comme ça :

En gros je lui dis

1) Prend tout les signes =
2) Prend tout tant que l'on ne rencontre pas un signe = de nouveau
3) Vérifie que le pattern 3= le pattern 1, c'est à dire qu'on trouve autant de signe = à la fin de la chaîne qu'il y en a au début.


Il est toujours préférable, quand on le peut, de dire : prend tout jusqu'a ce caractère -> /([^=]*)/i -> ici prend tout tant que pas =





Sinon pour rester dans la syntaxe de ta regex, il faut que tu ajoutes le modificateur "ungreedy" (le ? après le .* ) pour la partie centrale :

DelphiManiac 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 06h27.


 
 
 
 
Partenaires

Hébergement Web