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 14/08/2006, 07h07   #1
Futur Membre du Club
 
Avatar de Cygnus Saint
 
Inscription : mai 2005
Messages : 66
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 66
Points : 16
Points : 16
Par défaut Problème avec expressions régulières.

Bonjour,

J’essaie de récupérer toutes les chaînes situées entre ces quotes :

Code :
 <!-- Il est le numéro 221978 -->
Ce dont j’ai besoin c’est du numéro.

Voici mon code:

Code :
$nboccurences = preg_match_all( '#<!-- ([1-9]) --!>#', $filecontent, $occurences, PREG_SET_ORDER );
Ce dont j’ai besoin c’est du numéro. Ca fonctionne pas et je ne vois pas pourquoi.

Je suis allé voir ici, mais je ne trouve pas la solution:
http://g-rossolini.developpez.com/tu...s/?page=page_2
Cygnus Saint est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2006, 08h25   #2
Membre expérimenté
 
Développeur Web
Inscription : avril 2006
Messages : 430
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : avril 2006
Messages : 430
Points : 538
Points : 538
Salut,

voila une correction:

Code :
1
2
 
$nboccurences = preg_match_all( '#<!-- .* ([0-9]{1,}) -->#', $filecontent, $occurences, PREG_SET_ORDER );
__________________
Merci à Microsoft pour avoir transformé un métier relativement terne et basé sur une approche bêtement technique et rigoureuse des faits, en challenge quotidien, nécessitant une remise en question permanente à l'échelle du quart d'heure
bkill est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2006, 10h05   #3
Futur Membre du Club
 
Avatar de Cygnus Saint
 
Inscription : mai 2005
Messages : 66
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 66
Points : 16
Points : 16
Merci!!
mais peux tu me traduire cette partie stp
??
Cygnus Saint est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2006, 10h10   #4
Membre expérimenté
 
Développeur Web
Inscription : avril 2006
Messages : 430
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : avril 2006
Messages : 430
Points : 538
Points : 538
.* == un caractère, X fois (permet de traiter: 'Il est le numéro')
([0-9]{1,}) = capturer des chiffres uniquement présent en groupe d'au minimum 1 et au maxium indéfini.
__________________
Merci à Microsoft pour avoir transformé un métier relativement terne et basé sur une approche bêtement technique et rigoureuse des faits, en challenge quotidien, nécessitant une remise en question permanente à l'échelle du quart d'heure
bkill est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2006, 10h18   #5
Futur Membre du Club
 
Avatar de Cygnus Saint
 
Inscription : mai 2005
Messages : 66
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 66
Points : 16
Points : 16
Je n'ai aps tres bien compris pour le mais je vais tout de même essayer comme ça
merci encore.
Cygnus Saint est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2006, 10h21   #6
Rédacteur
 
Avatar de MasterOfChakhaL
 
Homme
Développeur Web
Inscription : juin 2004
Messages : 2 148
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 32
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : Conseil

Informations forums :
Inscription : juin 2004
Messages : 2 148
Points : 2 628
Points : 2 628
le point signifie "n'importe quel caractère"
le * signifie que le caractère qui précède (ici n'importe lequel) peut être répété 0 ou n fois
MasterOfChakhaL est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2006, 10h24   #7
Futur Membre du Club
 
Avatar de Cygnus Saint
 
Inscription : mai 2005
Messages : 66
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 66
Points : 16
Points : 16
Ok merci, j’ai compris !

Il ne trouve aucune occurence alors qu'il y en a plus d'une.
Cygnus Saint est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2006, 10h44   #8
Membre régulier
 
Inscription : décembre 2004
Messages : 121
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 121
Points : 93
Points : 93
essaie .*? a la place de .*
le .*? sarrete de matcher le plus tot possible donc des que la suite de la regex match. ce qui n'est pas le cas avec .* qui match surement tout jusqu'a la fin de la chaine.
DiGiTAL_MiDWAY est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2006, 11h17   #9
Futur Membre du Club
 
Avatar de Cygnus Saint
 
Inscription : mai 2005
Messages : 66
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 66
Points : 16
Points : 16
Toujours rien ...
Cygnus Saint est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2006, 11h22   #10
Rédacteur
 
Avatar de MasterOfChakhaL
 
Homme
Développeur Web
Inscription : juin 2004
Messages : 2 148
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 32
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : Conseil

Informations forums :
Inscription : juin 2004
Messages : 2 148
Points : 2 628
Points : 2 628
le problème doitvenir des # non?

Code :
$nboccurences = preg_match_all( '/<!-- .* ([0-9]{1,}) -->/', $filecontent, $occurences, PREG_SET_ORDER );
MasterOfChakhaL est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2006, 11h32   #11
Futur Membre du Club
 
Avatar de Cygnus Saint
 
Inscription : mai 2005
Messages : 66
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 66
Points : 16
Points : 16
Citation:
Envoyé par MasterOfChakhaL
le problème doitvenir des # non?

Code :
$nboccurences = preg_match_all( '/<!-- .* ([0-9]{1,}) -->/', $filecontent, $occurences, PREG_SET_ORDER );
Oui c'était le problème, les délimiteurs étaient en double.


Sinon quelqu’un a t’il une idée de la raison pour laquelle j’obtiens ceci quand je tente d’afficher le contenu de ma variable "$occurrences" ??
Voici le code :
Code :
echo "<b>$occurences[0]</b></br>" ;
résultat :
J’ai aussi essayé d’afficher toutes les occurrences à l’aide d’une boucle, mais j’obtiens la même chose à chaque fois, à savoir :
Cygnus Saint est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2006, 11h45   #12
Rédacteur
 
Avatar de MasterOfChakhaL
 
Homme
Développeur Web
Inscription : juin 2004
Messages : 2 148
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 32
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : Conseil

Informations forums :
Inscription : juin 2004
Messages : 2 148
Points : 2 628
Points : 2 628
ils en parlent sur php.net... c'estr bien un tableau que tu es sensé récupéré...

fait
tu verras le contenu de ton tableau
MasterOfChakhaL est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2006, 11h55   #13
Futur Membre du Club
 
Avatar de Cygnus Saint
 
Inscription : mai 2005
Messages : 66
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 66
Points : 16
Points : 16
Ca marche, merci.

Pourtant j'avais déja affiché les contenus de tableaux avec la fonction echo()
Cygnus Saint est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h15.


 
 
 
 
Partenaires

Hébergement Web