Expressions régulières... (TOUJOURS DANS LE CACA Rhaaa !!) - PHP - Programmation
Marsh Posté le 17-01-2003 à 22:22:54
regarde du cote de ereg()... je crois kil te fait ton truc...
Marsh Posté le 17-01-2003 à 22:24:24
J'ai déjà regardé, ça marche pas. Le problème vient de l'expression régulière, pas de la fonction utilisée pour trouver ces expressions. Mais merci de me répondre.
$chaine = "coucou c'est moi [imgyoup là boum] . et oui";
$res = ereg("[.]", $chaine, $test);
echo $test[0];
ne marche pas...
Marsh Posté le 17-01-2003 à 22:58:29
les crochets ont une signification particulière dans les exp. reg.
met des \ devant..
du genre : '.*\[.*\].*'
Marsh Posté le 17-01-2003 à 23:04:46
Merci, tu m'as mis sur la voie. c'est le * que j'avais oublié.
La réponse était :
tandannnnnnnnnnnn ...
$res = ereg('\[.*\]', $chaine, $test);
Thanks
Marsh Posté le 18-01-2003 à 00:33:38
Code :
|
Je vais quand même pas devoir faire un for... et réinventer la roue
Marsh Posté le 18-01-2003 à 00:57:57
hehe... tu me diras que c logique d'apres l'exp. reg. donné
le .* prend n'importe quel caractère en compte donc le crochet aussi
Essaie ca, mais c pas sur que ca marche :
Code :
|
p.s: le [^\]] permet d'exclure le crochet du jeu de caracteres
Marsh Posté le 18-01-2003 à 01:17:25
Marche pas
J'ai bien l'impression que je suis bon pour faire une fonction du feu de dieu.
Marsh Posté le 18-01-2003 à 01:55:02
voilà un début de réponse
Code :
|
mais ca ne donne que la première occurence...
pour toutes les avoir il faut le mettre entre parentheses et rajouter une etoile :
Code :
|
Marsh Posté le 18-01-2003 à 02:07:17
Je te remercie bcp de tes efforts. Le plus drôle, c'est que je suis parvenu au même résultat, mais malheureusement, c'est toujours pas ça.
En effet, il renvoie 2 FOIS la même occurence. Autrement dit :
2 fois
Code :
|
au lieu de :
Code :
|
Je commence à pêter un plomb avec cette histoire.
Marsh Posté le 18-01-2003 à 03:21:48
Bon, j'ai trouvé une solution, c'est de faire l'inverse et de ne retenir que ce que je ne veux pas, puis de le soustraire de la chaine globale avant de séparer les éléments restant que je veux :
Code :
|
Mais bon, c lourd...
Ya vraiment pas plus simple ??
Marsh Posté le 18-01-2003 à 04:41:02
avec cette maniere.. ta pa a mettre l'etoile
prend l'exp reg simple :
Code :
|
Marsh Posté le 18-01-2003 à 11:46:49
ouip, j'ai testé.
Mais bon, je trouve incroyable qu'on ne puisse pas faire plus simple.
Marsh Posté le 18-01-2003 à 13:29:54
Bon, bien que j'arrive à faire ce que je voulais, c'est trop lourd je trouve et donc, j'opte pour une autre solution (générer les images dans une banque pour que celles-ci soient utilisables par la personne directement).
Si qqu trouve quand même la soution avec les exp reg, qu'il le dise, ça pourra toujours servir dans d'autres situations.
Marsh Posté le 17-01-2003 à 21:53:27
Je voudrais pouvoir trouver les occurences de sous-chaines présentes dans ma chaine, telles que celles-ci soient comprises entre les caractères [ et ] (quoi qu'il puisse y avoir entre [ et ].
Voilà où j'en suis :
$chaine = "coucou c'est moi [imgyoup là boum] . et oui";
$test = split("[.]", $chaine);
echo $test[0];
et ben ça marche po. Il me renvoie le tout, le saligaud. Pourtant logiquement, il devrait me renvoyer une sous-chaine délimitée par les [ et ] ... grrrr... (j'ai aussi évidemment essayé split("\[.\]", $chaine)...
Help, je désepère... (pourtant il me semblait bien avoir compris les exp régulières... )
Message édité par Hermes le Messager le 18-01-2003 à 00:35:31