C # text.Replace préserver le cas
Question
Je travaille sur un wiki bot pour le wiki de mes communautés qui utilise le framework DotNetWikiBot; il s’agit de trouver un mot qui est généralement une faute de frappe (tel que "capacité") et les remplace par la correction (telle que "capacité").
Ceci fonctionne tel quel est codé:
p.text = p.text.Replace(@"\b" + typoArray[x, 0] + @"\b", typoArray[x, 1]);
Toutefois, cela remplacera " Abilty " avec " capacité " ce qui va bien sûr poser problème, mais je ne peux pas comprendre comment conserver la casse du mot remplacé (si Abilty devient Ability) à moins que le remplacement de la typo ne soit censé être capitalisé, quel que soit le remplacement: januray to January
La solution
Je pense que vous ferez mieux d'utiliser des expressions régulières à partir de l'espace de noms System.Text.RegularExpressions.
Regex.Replace (str, "[A]", "Z"); ou une variante de celui-ci. Les expressions régulières sont puissantes.