Expression Reguliere ... Où est le problème ?

Expression Reguliere ... Où est le problème ? - PHP - Programmation

Marsh Posté le 26-06-2003 à 20:18:59    

Je voudrais une expression régulière qui encadre tous les mots d'une variable (séparés par un espace) avec les memes balise ...
 
Par exemple, j'aimerais remplacer ça :
 

Citation :

salut bonjour coucou


 
Par ça :
 

Citation :

%salut% %bonjour% %coucou%


 
J'ai dejà fais ça pour le moment :
 

Citation :

$texte = "salut bonjour coucou";
$texte = ereg_replace("[[:alnum:]]*","%\\0%",$texte);
echo $texte;


 
Mais ça ne marche pas, le problème est qu'il m'affiche ça :
 

Citation :

%salut%%\0% %bonjour%%\0% %coucou%%\0%


 
Qu'est-ce qui est faux dans mon expression ?
 
Merci


---------------
Gamertag: CoteBlack YeLL
Reply

Marsh Posté le 26-06-2003 à 20:18:59   

Reply

Marsh Posté le 26-06-2003 à 21:08:16    

Bon ben je viens de résoudre le pb en faisant ça :
 

Citation :

$texte = "salut bonjour coucou";
$texte = ereg_replace("^|$","%",$texte);
$texte = ereg_replace(" ","% %",$texte);
echo $texte;


---------------
Gamertag: CoteBlack YeLL
Reply

Marsh Posté le 26-06-2003 à 21:32:40    

C'est fini l'utilisation des expressions régulières pour des trucs qui n'en valent pas la peine ?
Quand je vois la mode du jackyisme de la vitesse et la quantité d'utilisations inutiles de RE, je comprends pas !

Reply

Marsh Posté le 30-06-2003 à 10:09:28    

Excuses moi de te dire ça mais je te trouve très con ... tu te prends pour qui pour dire ça ?
 
Si j'ai utilisé ça c'est parceque j'en ai besoin ... et c'est loin d'être pour m'amuser ...
 
Maintenant si tu avais une solution plus simple que celle là, il suffisait de me la donner plutot que d'ouvrir ta gueule pour ce genre de commentaire ...
 
Excuses moi aussi de ne pas avoir un Qi aussi elevé que le tiens ... mais d'ailleurs, ça existe qqn de plus intelligent que toi en ce bas monde ? :pfff:

Reply

Marsh Posté le 30-06-2003 à 13:08:27    

+1

Reply

Marsh Posté le 30-06-2003 à 14:21:55    

Dj YeLL a écrit :

Excuses moi de te dire ça mais je te trouve très con ... tu te prends pour qui pour dire ça ?
 
Si j'ai utilisé ça c'est parceque j'en ai besoin ... et c'est loin d'être pour m'amuser ...
 
Maintenant si tu avais une solution plus simple que celle là, il suffisait de me la donner plutot que d'ouvrir ta gueule pour ce genre de commentaire ...
 
Excuses moi aussi de ne pas avoir un Qi aussi elevé que le tiens ... mais d'ailleurs, ça existe qqn de plus intelligent que toi en ce bas monde ? :pfff:  


 
+1

Reply

Marsh Posté le 30-06-2003 à 17:37:53    

Dj YeLL a écrit :


Si j'ai utilisé ça c'est parceque j'en ai besoin ...  

Et pourtant, l'étude ta grammaire montre que c'est un char d'assaut pour tuer une mouche.
Mais je vais pas te faire un cours sur la classification des grammaires, t'as l'air assez convaincu que tu as _besoin_ des expressions rationelles.
Donc reste avec tes automates à pile pour la recherche d'un seul caractère.

Reply

Marsh Posté le 30-06-2003 à 17:42:58    

nraynaud à raison sur le fond, mais il aurait pu donner la solution complète du premier coup. A savoir, remplacer simplement tous les espaces par % % et rajouter % en début et fin de chaine.
 
Maintenant, pour ce qui est de ton usage des regexp, quand on programme proprement, on utilise $n pour les expressions entre parenthèse...

Reply

Marsh Posté le 30-06-2003 à 17:46:37    

on a pas dis qu'il avait pas raison... mais faut arrêter avec ce ton de mec qui sait tout et qui a tout vu..
 
un simple : Je pense que ce n'est pas la meilleur solution aurait suffi...

Reply

Marsh Posté le 30-06-2003 à 21:19:47    

Et quand ya 2 ou + espaces consécutifs ?

Reply

Marsh Posté le 30-06-2003 à 21:19:47   

Reply

Marsh Posté le 30-06-2003 à 21:33:42    

THEniluje a écrit :

Et quand ya 2 ou + espaces consécutifs ?


ça donne le même résultat que ça :

Citation :

$texte = ereg_replace(" ","% %",$texte);


 
Et il en a pas parlé dans sa grammaire que je sache.


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 01-07-2003 à 10:07:30    

Tu m'excuseras mais je suis relativement débutant en programmation ...
 
Je pense que tu ne sais pas piloter un avion de chasse ... c'est pas pour ça qu'un vrai pilote devra te prendre de haut parceque lui il sait ...
 
Un forum c'est une communauté ... mais il me semble que tu ne connais pas la définition de ce mot ...
 
 
De plus, malgré tes sages paroles très délicate, je ne vois tjs pas LA solution ... celle qui est si évidente que même un néophite devrait connaître ...
 
C'est quand même pas de bol hein ... j'ai pas la science infuse ... zut ! :heink:

Reply

Marsh Posté le 01-07-2003 à 15:46:52    

Dj YeLL a écrit :

j'ai pas la science infuse ... zut !

Hélas personne, par contre il y a ceux qui lisent et ceux qui se plaignent de ne pas l'avoir.
 
gizmo t'as donné une solution beaucoup plus légère, mais je crois que tu ne l'a pas lue. Si tu veux traiter plusieurs espace, tu prends une variable booléenne qui va te servir à comme changement d'état de l'automate, soit en cour de traitement d'espaces soit en cours de traitement d'autre chose.
Si t'as d'autres spécifications dont tu n'as pas parlé et qui complexifierait encore, utilises effectivement _UNE SEULE_ expression régulière (et pas 2 ou 15) dans la mesure du possible.


---------------
trainoo.com, c'est fini
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed