[C#]Regexp
Résolu
teebo
Messages postés
33585
Date d'inscription
Statut
Contributeur
Dernière intervention
-
teebo Messages postés 33585 Date d'inscription Statut Contributeur Dernière intervention -
teebo Messages postés 33585 Date d'inscription Statut Contributeur Dernière intervention -
Salut tout le monde :o)
Alors voilà, je suis en C# et j'essaye de faire une regexp pour remplacer dans une chaîne les * (wild cards, c'est à dire 0 ou plus charactères) en expression régulière mais je n'arrive pas à faire cela, je remplace par .* et il me remplace par n'importe quelle suite de au moins un ce que je ne veux pas...
ça transforme mes * en .* quand elles ne sont pas précédés par un \, mais cela nécessite encore au moins un charactère (c'est à dire que te*st ne trouvera pas test)
Si quelqu'un a une idée, j'ai aussi essayé (.)* et [.]* mais aucun résultat probant...
Qui va en mer pour son plaisir,
irait en enfer pour ses vacances
Alors voilà, je suis en C# et j'essaye de faire une regexp pour remplacer dans une chaîne les * (wild cards, c'est à dire 0 ou plus charactères) en expression régulière mais je n'arrive pas à faire cela, je remplace par .* et il me remplace par n'importe quelle suite de au moins un ce que je ne veux pas...
result=Regex.Replace (result,@"([^\\])(\*)","$1.*"); result=Regex.Replace (result,@"([^\\])(\*)","$1.*"); result=Regex.Replace (result,@"^\*",".*");
ça transforme mes * en .* quand elles ne sont pas précédés par un \, mais cela nécessite encore au moins un charactère (c'est à dire que te*st ne trouvera pas test)
Si quelqu'un a une idée, j'ai aussi essayé (.)* et [.]* mais aucun résultat probant...
Qui va en mer pour son plaisir,
irait en enfer pour ses vacances
10 réponses
-
hello!!
Tu pourrais donner un exemple de chaine non transformée, puis transformée s'il te plait, comme ça, on verra mieux ce que tu veux dire! ;-)
Maily :-))))
Boumj'chtattrape -
Bonche je vais revenir sur terre, je m'aperçoit que pour quelqu'un qui ne tourne pas en rond dans ce bout de code depuis des heures c'est pas clair :o)
Alors en fait je voudrais savoir comment dire dans une expression régulière : "n'importe quel charactère autant de fois que nécessaire, mais également rien du tout si possible" c'est à dire que cela se comporte comme une * de wild cards :o)
Merci :O)
Qui va en mer pour son plaisir,
irait en enfer pour ses vacances -
J'ai trouvé! En fait il faut que je remplace mon wild card * par (.?|.+) rien de moins et rien de plus, ça marche impecc maintenant :o)
Qui va en mer pour son plaisir,
irait en enfer pour ses vacances -
je me disais bien qu'il y aurait un | quelque part!!
Merci, du coup, ça m'intriguait!
Maily :-))))
Boumj'chtattrape -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Arf, le prochain problème, puisque tu as l'air de t'y intéresser :o)
Alors j'ai
"***TEST*** : It this a [TEST]? *\* +++Yes+++"
comme string source
je recherche dedans\*\*\*(.?|.+)\*
et au lieu de me donner comme résultat cette partie là:
***TEST*
comme je m'y attend, il me donne
***TEST*** : It this a [TEST]? *\*
En fait avec ce genre de test il cherche toujours le résultat le plus long 8-S
Tu (ou un autre) a une idée?
Qui va en mer pour son plaisir,
irait en enfer pour ses vacances -
Si c'est comme les RegExp POSIX :
\*\*\*(.?|.+)?\*
Jeff \--Webmaster@CCM--/ -
Vu l'entrée source, je mettrais plutôt :
\*\*\*([A-Z]*)\*
Jeff \--Webmaster@CCM--/ -
Si ça peut t'aider, quelques exemples de RegExp en "CiSharp" :
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconRegularExpressionExamples.asp
Jeff \--Webmaster@CCM--/ -
Merci, mais rien de probant...bon je laisse tomber, je verrais ça dans deux semaines maintenant...Merci!
Qui va en mer pour son plaisir,
irait en enfer pour ses vacances -
^
Je suis reviendu mais le problème est pas parti :-S
En plus quand je fais \*(.?|.+)?\* il me trouve 2 charactères au lieu d'en trouver 2 :-S
Qui va en mer pour son plaisir,
irait en enfer pour ses vacances