Regex : remplacement conditionnnel selon l'occurence

EmacLi Messages postés 165 Date d'inscription jeudi 3 novembre 2005 Statut Membre Dernière intervention 1 février 2013 - 23 août 2012 à 21:11
EmacLi Messages postés 165 Date d'inscription jeudi 3 novembre 2005 Statut Membre Dernière intervention 1 février 2013 - 24 août 2012 à 12:11
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

cs_BinKentsu Messages postés 64 Date d'inscription jeudi 1 septembre 2011 Statut Membre Dernière intervention 22 juillet 2014 8
24 août 2012 à 08:13
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
0
EmacLi Messages postés 165 Date d'inscription jeudi 3 novembre 2005 Statut Membre Dernière intervention 1 février 2013 1
24 août 2012 à 12:11
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 !
0
Rejoignez-nous