probleme avec RegEx

probleme avec RegEx - C#/.NET managed - Programmation

Marsh Posté le 26-08-2003 à 22:36:33    

je commence seulement avec les Regular Expressions.. Alors je me perds un peu..
j'essaie de remplacer tous les espaces d'une chaine dans une autre chaine..
 
Exemple : "patate \carotte navet tomate\ concombre"
 
J'aimerais que la phrase devienne
 
"patate \carotte-navet-tomate\ concombre"
 

Code :
  1. str = RegExp.Replace(str, "\\([^\\]{1,}) ([^\\]{1,}) *(([^\\]{1,})*)\\", "$1-$2-$3" )


 
Mais ca me donne
"patate \carotte navet-tomate-\ concombre"
 
J'aimerais pour remplacer tous les espaces quelque soit le nom de mot entre les \ \  
 
Quelqu un a une idée ?
 
EDIT : et si je fais  

Code :
  1. str = RegExp.Replace(str, "\\([^\\]{1,}) ([^\\]{1,}) *(([^\\]{1,})*)\\", "Fruits et legumes" )


 
Tout ce qui est entre le \ \ est bien remplacé ..


Message édité par zetoune le 26-08-2003 à 22:42:26
Reply

Marsh Posté le 26-08-2003 à 22:36:33   

Reply

Marsh Posté le 26-08-2003 à 22:42:01    

Essaie ça, c'est un outil pour tester des expressions régulières bien pratique :
 
http://www.codeproject.com/dotnet/Expresso.asp

Reply

Marsh Posté le 26-08-2003 à 22:44:13    

ouais mais je pense que mon expression est bonne..  
c'est la récupérration de chaque groupe qui foire ...

Reply

Marsh Posté le 26-08-2003 à 22:48:26    

je viens de tester ton soft (en effect très pratique)..
il me trouve bien la phrase a remplacer..
mais il remplace par n importe quoi

Reply

Marsh Posté le 26-08-2003 à 22:50:20    

je peux pas t'aider davantage, je suis faché avec les expressions régulières :(
(la dernière fois, j'ai mis 3 jours pour trouver une regexp à la con qui tenait sur une ligne [:ddr555])

Reply

Marsh Posté le 26-08-2003 à 22:52:46    

héhé.. ouais je comprends..
moi j'en suis a ma deuxieme journée.

Reply

Marsh Posté le 15-09-2006 à 13:33:48    

Bon, moi aussi je suis assez faché avec les regex mais à première vue, ta première occurence trouvée contient "carotte navet" au lieu de "carotte" tout court.
 
A mon avi, rajouter une exclusion sur les espaces devrait aider.
Tu as essayé [^\s\\]* à la pace des [^\\]* ?

Reply

Sujets relatifs:

Leave a Replay

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