Problème avec Regex

akazukin_chacha Messages postés 8 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 6 octobre 2004 - 5 oct. 2004 à 17:16
akazukin_chacha Messages postés 8 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 6 octobre 2004 - 6 oct. 2004 à 13:21
Salut,

j'utilise les expressions régulières, tout allait bien jusqu'au moment où j'ai essayé d'importer les expressions à chercher. Je m'explique:

Si je fais

Regex exp = new Regex(@"(<a href....le reste de mon expression régulière)");


Ca fonctionne mais si je fais

cherche = "(<a href....le reste de mon expression régulière)";
Regex exp = new Regex(@cherche);


ou d'une autre manière, ca ne fonctionne pas, j'ai testé mon exp récupéré dans un fichier ini en la remplacant directement dans le constructeur, ca fonctionne...

Je m'arrache les cheveux, est-ce que qqn peut m'aider ?

Merci d'avance
Chacha

7 réponses

gg00xiv Messages postés 656 Date d'inscription mercredi 22 août 2001 Statut Membre Dernière intervention 11 mars 2005 13
5 oct. 2004 à 19:12
Et si tu mets le @ devant la chaine et pas le nom de la variable ?
Ta essayer ?

Membre du Labo .NET
gg00xiv's Blog
0
akazukin_chacha Messages postés 8 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 6 octobre 2004
5 oct. 2004 à 19:26
Oui j'ai essayé, de l'insérer directement dans ce que je lis, ca ne fonctionne pas :(
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
5 oct. 2004 à 19:41
je crois que gg00xiv parlait plutot de mettre ça :
cherche = @"(<a href....le reste de mon expression régulière)";
Regex exp = new Regex(cherche);


Cocoricoooooooo !!!!
0
akazukin_chacha Messages postés 8 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 6 octobre 2004
5 oct. 2004 à 20:41
Oui mais quand on récupère d'un fichier (par exemple)
On lit une string, on la fout dans une variable, l'expression régulière a priori je ne sais pas à quoi elle va ressembler, donc je finis par obtenir

ex:

tagprod = node.Attributes["Name"].Value;


Mais quand je fais

Regex exp = new Regex(@tagprod);


ou même

Regex exp = new Regex(tagprod);


Ca ne fonctionne pas, idem si je mets de guillemets :(

Et j'ai vérifié en remplacant la string tagprod directement dans le prog, ca fonctionne :(

Je sais que ca serait plus facile de directement la mettre dedans dans ce cas mais je peux avoir différentes expressions régulières selon différents cas et j'aimerais autant pouvoir les lire dans un fichier de configuration histoire de pas devoir recompiler si je dois changer 1 caractère...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
5 oct. 2004 à 22:25
le @ n'est utile que quand la chaine est en "dur" dans le code
si ton regex ne focntionne pas ça doit etre le contenu de la chaine de caracteres lue qui doit etre erroné
verifie le contenu de tagprod en debug

Cocoricoooooooo !!!!
0
akazukin_chacha Messages postés 8 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 6 octobre 2004
6 oct. 2004 à 10:27
Oui j'ai vérifié, juste après l'avoir lu, je l'insère dans une richtextbox de manière à vérifier si ca a bien été lu... Quand je copie/colle cette même string de la richtextbox dans le code directement, ca fonctionne.

si je la laisse dans la variable, que dalle :(

Que je mette le @ ou non, ca ne change rien...
0
akazukin_chacha Messages postés 8 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 6 octobre 2004
6 oct. 2004 à 13:21
C'est bon j'ai trouvé, en fait, je doublais les guillemets dans le fichier ini, alors qu'il ne fallait pas :p, effectivement quand on met la string directement dans l'initialisation du regex, il en faut et pas quand on a mis la string dans une variable...

Bon quand on est débutant, il faut le savoir :p

Désolée du dérangement
0
Rejoignez-nous