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 № 1Je 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 ? "[" : "]");