Regex : remplacement conditionnnel selon l'occurence

Signaler
Messages postés
165
Date d'inscription
jeudi 3 novembre 2005
Statut
Membre
Dernière intervention
1 février 2013
-
Messages postés
165
Date d'inscription
jeudi 3 novembre 2005
Statut
Membre
Dernière intervention
1 février 2013
-
Bonjour à tous,

Je voudrais savoir si il est possible de remplacer des bouts dans une chaine par une autre qui peut être différent selon le cas. Un exemple pour vous expliquer :

Dans la chaine "aa bb cc dd ee ff" je voudrais remplacer "aa" par "AA" et "dd" par "DD" en une expression régulière !

J'ai essayé ça sans succés : Regex.Replace("aa bb cc dd ee ff", "aa|dd", "AA|DD")

J'ai chercher sur le net mais je n'ai rien trouvé sur le sujet.
Y a t'il moyen d'y arriver autre que par de multiple .Replace ?

Merci d'avance pour votre aide.

(VS2010, frk4)

2 réponses

Messages postés
65
Date d'inscription
jeudi 1 septembre 2011
Statut
Membre
Dernière intervention
22 juillet 2014
7
Bonjour

Tu peux directement mettre ta chaine en majuscule :

string str = "aa bb cc dd ee ff";
str.ToUpper();   // str = "AA BB CC DD EE FF"

BinKentsu
Messages postés
165
Date d'inscription
jeudi 3 novembre 2005
Statut
Membre
Dernière intervention
1 février 2013
1
Bonjour,

Si j'avais voulu mettre ma chaine de texte en majuscule, j'aurais mis en titre "Comment mettre une chaine de texte en majuscule ?". C'est un peu une méthode de base en programmation c# le .ToUpper() mais je peux comprendre qu'il y ai eu confusion donc voici un autre exemple :

Regex.Replace("aa bb cc dd ee ff", "aa|dd", "138|toto") : remplacer "aa" par "138" et "dd" par "toto" dans ma chaine de texte.

Merci quand même !