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