inscription
Ajouter une réponse
 

 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet :

[ PHP ] Expressions régulières ( Problème )

Bas de page 
n°6385071
WiSi   profil
Scooteriste
Profil : Pilote confirmé
Avatar
Note : 2.2/4 pour 121 votes
Posté le 09-06-2004 à 14:55:12  answer
 
Publicité

Voila j'ai un petit problème et je n'ai pas trop envi de m'attarder dessus donc de chercher.
 
En fait je veux recuperer ce qui se trouve entre deux balises <table></table>, le probleme qui se pose c'est que dans mon code

eregi("<table border......>(.*)</table",$chaine, $result)


 
la fonction s'arrete sur le dernier </table> de la chaine "$chaine" qui contient plusieurs </table>.
 
Donc comment sachant que la table que je veux recuperer est unique par rapport aux autres au niveau des espaces bordure etc .. donc que j'identifie rapidement mais je voudrais que la fonction s'arrete sur la premiere occurence </table> qu'il trouve et non pas la derniere de la chaine.
 
 
Quelqu'un a une idée ??


Message édité par WiSi le 09-06-2004 à 15:03:52
n°6385272
Jllc   profil
Profil : Routard confirmé
Note : 1/4 pour 2 votes
Posté le 09-06-2004 à 15:09:49  answer
 

Peut-être en indiquant dans ton expression qu'il ne doit pas y avoir de "</table>"  à l'intérieur, là où tu as mis "(.*)" ?
 
Ou alors appeler récursivement une fonction similaire jusqu'à ce qu'il n'y ait plus rien à trouver, ce qui voudrait dire que tu es sur dernier bloc <table></table>.

n°6385358
Manu06   profil
Life is great!
Profil : Pilote addict
Avatar
Note : 1.7/4 pour 20 votes
Posté le 09-06-2004 à 15:17:00  answer
 

Jllc a écrit :

 
Peut-être en indiquant dans ton expression qu'il ne doit pas y avoir de "</table>"  à l'intérieur, là où tu as mis "(.*)" ?
 
Ou alors appeler récursivement une fonction similaire jusqu'à ce qu'il n'y ait plus rien à trouver, ce qui voudrait dire que tu es sur dernier bloc <table></table>.




 
L'interet des expression reguliere est justement d'eviter ces appels recursifs.
 
Par contre pour le probleme, je ne vois pas trop :voyons:

n°6385901
WiSi   profil
Scooteriste
Profil : Pilote confirmé
Avatar
Note : 2.2/4 pour 121 votes
Posté le 09-06-2004 à 16:02:53  answer
 

Jllc a écrit :

 
Peut-être en indiquant dans ton expression qu'il ne doit pas y avoir de "</table>"  à l'intérieur, là où tu as mis "(.*)" ?
 
Ou alors appeler récursivement une fonction similaire jusqu'à ce qu'il n'y ait plus rien à trouver, ce qui voudrait dire que tu es sur dernier bloc <table></table>.




 
 
Arf tout simplement.
 
Ca s'ecrirait comme ça  
 

"<TABLE (.*)(^/TABLE)</TABLE>"


 
??
 
La négation fonctionne sur les chaines de caracteres ?


Message édité par WiSi le 09-06-2004 à 16:11:25
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
 

Sujets relatifs
[ Problème d'amitité ] --> Je fais quoi ?Problème de code Windows
Problème d'amitié...[PHP] Problème sur une fonction, hébergé sur un serveur UNIX
[Info]Problème d'écran au demarrage d'un nouveau pcProblème de joints (sanitaires !!!)
Problème avec un programme (ou fichier?) appellé "Sysai"J'ai un probleme pour afficher cette page
Probleme pointeur sourisProbleme portable Mx3 sagem
Plus de sujets relatifs à : [ PHP ] Expressions régulières ( Problème )