J'ai besoin d'une chaîne à vérifier et à modifier plusieurs fois (recherche et remplacement de séquences différentes) mais cela ne fonctionne pas bien. Je suppose que c'est à cause de l'immuabilité.Looping throught string - Problème d'immuabilité
private string DoRegexCheck(string line)
{
string pattern;
foreach (string re in this.regexPatterns.Items)
{
pattern = re;
Regex r = new Regex(pattern, RegexOptions.IgnoreCase);
line=r.Replace(line, ""); //the line should be updated and the check should continue with updated line
}
return line;
}
Etrange, ça devrait marcher. L'invariabilité ne devrait pas être un problème: le 'Regex.Replace' créera simplement une nouvelle instance de' '** new'' chaîne' qui sera assignée à la variable 'line'. Qu'entendez-vous par * ça ne fonctionne pas bien *? Qu'est-ce qui ne va pas? –
@Pavel Gatilov: ça ne remplace pas les séquences mais ça marche quand je les ai essayées une par une. – user970696
Si vous voulez dire "ma ligne n'a pas changé", alors simplement: vos modèles d'expressions régulières sont faux. Le code pour mettre à jour la ligne est bien. Veuillez montrer quelques exemples de données que nous pouvons utiliser pour reproduire - c'est-à-dire un exemple de 'ligne', quelques modèles d'échantillons et la sortie désirée/réelle. –