Exclure les points [RegExp] - Divers - Programmation
Marsh Posté le 13-04-2004 à 11:13:38
Faut lire un peu de docs : 
http://www.p3b.org/tutor/oli/pytho [...] exp/a04ref 
[^...]
Marsh Posté le 13-04-2004 à 11:44:37
J'ai lu les docs, j'en suis pas à mes premieres regexp, si je demande c'est parce ke je trouve pas, et non par feignantise. 
 
Le pb c'est pas de prendre j'usqu'au point c'est de virer toute la chaine contenant un point. 
 
alors j'ai essayé plein de truc mais sans succes  
 
 
genre : [^[:alnum:]+\.+[:alnum:]+] 
 
et la je seche.
Marsh Posté le 13-04-2004 à 11:52:52
La question c'est : comment tu délimites ta chaîne qui contient le point? Comment tes chaînes sont elles délimitées? TU parles de plusieurs chaînes, comment tu les distingues entre elles?  
Marsh Posté le 13-04-2004 à 11:56:28
C'est une liste donc je parcours ma liste et a chake fois j'ai une chaine. 
 
Et si cette chaine contient un seul '.' je veux la faire sauter.
Marsh Posté le 13-04-2004 à 12:16:21
Ben au lieu de rechercher les chaines qui ont un point et de les éliminer, tu fais une sélection des chaines qui ne contiennent pas de points.
Marsh Posté le 13-04-2004 à 12:20:32
| chaica a écrit : Ben au lieu de rechercher les chaines qui ont un point et de les éliminer,  tu fais une sélection des chaines qui ne contiennent pas  de points.  | 
 
 
bah c'est exactement ce ke je veux faire mais j'y arrive pas   
 
Marsh Posté le 13-04-2004 à 12:52:40
| Code : 
 | 
 
et en sortie j'ai : 
chaica@desktop exos $ ./nopoint.py 
['hello.world', 'ca va la life', 'phrase.avec.un.point'] 
['ca va la life'] 
 
donc on a bien éliminé les phrases sans point.
Marsh Posté le 13-04-2004 à 13:00:53
merci  
 
 
le pb c'est ke je le fait en php et ke j'ai omis de le preciser 
Marsh Posté le 13-04-2004 à 13:16:19
Oui enfin je t'ai donné l'idée, maintenant tu te débrouilles, hein. Avec les commentaire que j'ai mis tu peux avoir une idée de l'algo. Y'a pas marqué la poste 
Marsh Posté le 13-04-2004 à 13:22:53
| chaica a écrit : Oui enfin je t'ai donné l'idée, maintenant tu te débrouilles, hein. Avec les commentaire que j'ai mis tu peux avoir une idée de l'algo. Y'a pas marqué la poste  | 
 
 
Le pb c'est pas de faire un algo, c'etait de trouver une expression ki serait capable de faire ce ke je veux sans rien de plus 
Marsh Posté le 13-04-2004 à 13:36:11
| Code : 
 | 
 
 
[edit sinon tu peux toujours faire un not match sur \. ]
Marsh Posté le 13-04-2004 à 14:01:11
| Noda a écrit : merci  | 
Excellente occasion pour elargir ton horizon. 
A+,
Marsh Posté le 13-04-2004 à 20:07:23
| anapajari a écrit : 
   | 
 
 
ca ca prend aussi ce ki precede le point 
Marsh Posté le 13-04-2004 à 20:07:45
| gilou a écrit : Excellente occasion pour elargir ton horizon.  | 
 
 
Je ne peux pas changer de langage 
Marsh Posté le 13-04-2004 à 23:50:56
| Noda a écrit :   | 
 
non ça décrit un motif "tout sauf point" enfin bon si tu sais pas te servir d'une regex pourquoi ne pas faire simplement 
| Code : 
 | 
 
Marsh Posté le 14-04-2004 à 09:34:21
| anapajari a écrit :   
   | 
 
 
ton truc ca va sortir :  
 
/  
/toto/  
/titi/popo/  
/toto 
/toto 
 
Je l'ai testé 
Marsh Posté le 14-04-2004 à 10:14:50
tu peux me montrer le code que tu as utilisé pour voir...
Marsh Posté le 19-04-2004 à 09:45:27
| anapajari a écrit : tu peux me montrer le code que tu as utilisé pour voir...  | 
 
 
desolé pour le temps de reponses  
 
 
pour l'instant j'utilise :  
 
ereg('^/([^.]*).*',$string,$chunk) ; 
 
mais ca prends egalement ce k'il y'a avant le point. 
 
Est il possible d'exclure un motif ?
Marsh Posté le 19-04-2004 à 14:43:21
J'ai evolué vers :  
 
preg_match('/(\w+(?!\.))/i',$ligne,$chunk) ; 
 
j'ai preske ce ke je veux. 
 
Sauf ke la ca ne vire k'un seul caractere avant le "."
Marsh Posté le 19-04-2004 à 15:16:28
| Noda a écrit :   | 
 
 
et bien je le redis encore un fois pas besoin de regex, je suppute que tu as un while ( ou autre boucle) qui te fait traiter tes lignes une à une: 
| Code : 
 | 
Marsh Posté le 19-04-2004 à 15:33:28
| anapajari a écrit :   
   | 
 
 
je peux pas faire ca car j'ai tout de meme besoin de connaitre l'existence de ces lignes ...  
 
 
Je vois pas trop comment expliker. je vaus pas ejecter totalement la ligne si y'a un point. 
 
je veux garder le / du debut de ligne. 
 
D'ou le preg_match 
Marsh Posté le 19-04-2004 à 16:00:44
voila là c'est déjà plus clair: 
| Code : 
 | 
 
$chunk[1] contient tout le debut jusqu'a dernier / 
$chunk[2] contient le nom de ton fichier 
 
[edit: le i est inutile pour le preg dans ce cas la]
Marsh Posté le 19-04-2004 à 16:09:19
Tu peux m'expliker un peu parce ke la je suis à la masse  
 
 
en tout cas merci bcp
Marsh Posté le 19-04-2004 à 16:35:39
en gros ça fait: 
| Code : 
 | 
 
au niveau des ([^\/]*) les parenthèses ne sont pas indispensables mais te permettent de récuperer le nom de ton fichier $chunk[3] et son extension $chunk[4]. 
 
Attention, si tu peux avoir plusieurs points dans ton nom de fichier ( fichier.txt.old ) ça va merdouiller a ce niveau ...
Marsh Posté le 19-04-2004 à 16:44:48
Merci 
 
T'aurais pas un site ou kkchose dans ce genre à me conseiller ?
Marsh Posté le 13-04-2004 à 10:50:52
Salut j'ai une liste de chaine ki a à peu de chose pres cette tete :
 
 
 
 

/
/toto/
/titi/popo/
/toto.titi
/toto.titi?popo=123&lolo=321
Je cherche en vain comme ne prendre ke les chaines NE comportant AUCUN "."
Help me je suis desesperé
Mirci
---------------
:D