/ / C #, en utilisant une expression régulière pour trouver et remplacer certains caractères dans un mot? - c #, regex

C #, en utilisant une expression régulière pour trouver et remplacer certains caractères dans un mot? - c #, regex

J'ai besoin de quelque chose qui va trouver un mot entre deux signes "%", et remplacer le premier % avec un [ et le deuxième % signer avec un ].

Donc, dans la chaîne "Ceci est un texte factice% avec% signes%" Cela fera alors "ceci est un texte factice [avec] des signes de pourcentage"

MODIFIER: Y aurait-il un moyen de rechercher et de remplacer deux choses différentes dans la même expression rationnelle? Comme je dois remplacer% blah% par [blah] mais aussi% ~ dp1 par [~ dp1], l’appel% ~ dp1 est au format% ~ (il pourrait s’agir de quelques lettres ici) (se termine toujours par un chiffre sais que l'appel est terminé) désolé c'est la dernière chose :)

Réponses:

5 pour la réponse № 1

Je correspondrais à la sous-chaîne entière incluse par lecaractères spéciaux et remplacez-le par une chaîne contenant les mêmes caractères internes, mais entre crochets au lieu de signes de pourcentage. Assurez-vous que vous utilisez la correspondance non générique si l'entrée peut avoir plusieurs de ces chaînes:

Regex.Replace("This is dummy text %with% percent signs", "%(.*?)%", @"[$1]");

2 pour la réponse № 2

Essaye ça:

Regex.Replace(s, "%([^%]+)%", "[$1]")

0 pour la réponse № 3

Utilisez un MatchEvaluator pour fournir la valeur de remplacement. Alterner avec (i++ % 2)

int i = 0;
Regex.Replace(s, "%", m => (i++ % 2) == 0 ? "[" : "]");