cs_mathmax
Messages postés403Date d'inscriptionvendredi 28 octobre 2005StatutMembreDernière intervention31 août 2008
-
10 déc. 2005 à 19:06
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014
-
10 déc. 2005 à 22:55
Bonjour,
Je souhaiterais modifier un fichier CSS par le biais d'un programme C#. Pour cela je mets des tokens du styles /*blablabla*/ qui permettent de délimiter les parties que je vais modifier. J'utilise ensuite les expressions régulières pour modifier mon document. Pourquoi des tokens du style /*blablabla*/ ? Parce que ce sont des commentaires en CSS et qu'il ne sont pas pris en compte. Malheureusement /**/ est aussi une manière d'encadrer les commentaires dans C# et ça semble poser problème quand j'utilise la class regex. (si je remplace ces tokens par des blablabla simplement ça fonctionne). Une idée pour parer ce problème ?
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 10 déc. 2005 à 19:21
Salut,
Celà ne pose habituellement aucun problème d'avoir /**/ dans une chaine litérale.
Je pense que le problème se situe plutôt au niveau de la définition de la Regex en elle même.
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 10 déc. 2005 à 22:14
C'est bien ce que je disais.
Dans le pattern tu insères une chaîne avec des caractères "spéciaux" au niveau regex...
=>
string pattern = string.Format("(.*)({0})(.*)", @"\x2F\x2Ace texte n'apparait tout seul\x2A\x2F");
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 10 déc. 2005 à 22:55
La réponse est dans la première partie de ton pattern : tu utilises bien des .* pour spécifier "n'importe quel caractère, répété 0 ou plusieurs fois"
Donc quand tu rajoutais l'autre séquence ce n'était pas le caractère '*', mais bien le même spécificateur de répétition.
D'où l'ajout des caractères en notation hexa.