je souhaiterais ne conserver d'une chaine seulement les parties qui
verifient une expression reguliere
une sorte de ereg_replace inverse en qq sorte
je m'explique. la ligne suivante ne va conserver dans area que tout ce qui
n'est pas toto suivi d'un nombre
$area=ereg_replace("\(toto[0-9]\)","",$area);
hors je voudrais justement que la ligne ejecte tout ce qui n'est pas toto
suivi d'un nombre (il peut y avoir une centaine de toto suivi d'un nombre
dans la chaine et je ne veux garder que ceux la)
je ne sais pas comment faire et je ne trouve rien qui parle de ca
il y a bien le circonflexe d'interdiction dans les classes de caracteres
mais pour les chaines je donne ma langue au chat.
je souhaiterais ne conserver d'une chaine seulement les parties qui verifient une expression reguliere une sorte de ereg_replace inverse en qq sorte
Ca c'est la fonction ereg : http://fr.php.net/manual/en/function.ereg.php ou mieux preg_match : http://fr.php.net/manual/en/function.preg_match.php
strstr peut aussi se révéler utile si vous ne noules pas sortir les 'totoi' tous d'un seul coup...
Antoine Dinimant
a écrit:
je souhaiterais ne conserver d'une chaine seulement les parties qui verifient une expression reguliere
le raisonnement complet s'est fait au fur et à mesure de la discussion sur alt.fr.comp.lang.php, mais comme je suis très content de moi :-) je poste ici la soluttion :
voici une boucle qui marche, sur une regex simplifiée :
je souhaiterais ne conserver d'une chaine seulement les parties qui
verifient une expression reguliere
le raisonnement complet s'est fait au fur et à mesure de la discussion
sur alt.fr.comp.lang.php, mais comme je suis très content de moi :-) je
poste ici la soluttion :
voici une boucle qui marche, sur une regex simplifiée :
je souhaiterais ne conserver d'une chaine seulement les parties qui verifient une expression reguliere
le raisonnement complet s'est fait au fur et à mesure de la discussion sur alt.fr.comp.lang.php, mais comme je suis très content de moi :-) je poste ici la soluttion :
voici une boucle qui marche, sur une regex simplifiée :
Ah bon, content de réinventer une fonction PHP existante (ereg, preg_match) ?
non, de construire la boucle autour. Je ne prétends pas que ça révolutionne le web, mais c'était le pb posé.
Comme le signalait Éric Daspet, il vaut mieux utiliser les preg plutôt que les ereg, et du coup un preg_match_all() retrouve toutes les occurrences en une seule fois, sans qu'il soit besoin de construire une boucle autour.
Ah bon, content de réinventer une fonction PHP existante (ereg,
preg_match) ?
non, de construire la boucle autour. Je ne prétends pas que ça
révolutionne le web, mais c'était le pb posé.
Comme le signalait Éric Daspet, il vaut mieux utiliser les preg plutôt
que les ereg, et du coup un preg_match_all() retrouve toutes les
occurrences en une seule fois, sans qu'il soit besoin de construire une
boucle autour.
Ah bon, content de réinventer une fonction PHP existante (ereg, preg_match) ?
non, de construire la boucle autour. Je ne prétends pas que ça révolutionne le web, mais c'était le pb posé.
Comme le signalait Éric Daspet, il vaut mieux utiliser les preg plutôt que les ereg, et du coup un preg_match_all() retrouve toutes les occurrences en une seule fois, sans qu'il soit besoin de construire une boucle autour.