Puis-je utiliser des expressions régulières avec String.Replace en C #?
Par exemple, j'ai le code ci-dessous
string txt="j'ai des chaînes de caractères comme à l'Ouest, et de l'Ouest, de l'ouest et de l'Ouest."
Je voudrais remplacer le mot de l'ouest ou de l'Ouest avec un autre mot. Mais je ne voudrais pas remplacer l'Ouest dans l'Ouest.
- Puis-je utiliser une expression régulière dans une chaîne.remplacer? J'ai utilisé
inputText.Replace("(\\sWest.\\s)",temp);
C'dos pas de travail.
source d'informationauteur Tasawer Khan
Vous devez vous connecter pour publier un commentaire.
De remplacer le mot en entier (plutôt qu'une partie du mot):
Réponse à la question est PAS - vous ne pouvez pas utiliser les regexp dans la chaîne.Remplacer.
Si vous souhaitez utiliser une expression régulière, vous devez utiliser la classe Regex, comme tout le monde l'a indiqué dans leurs réponses.
Avez-vous regardé
Regex.Replace
? Aussi, assurez-vous de prendre la valeur de retour;Replace
(via n'importe quel mécanisme de chaîne) renvoie un nouveau string - il ne pas faire une place à remplacer.Essayez d'utiliser le
System.Text.RegularExpressions.Regex
classe. Il a une statiqueReplace
méthode. Je ne suis pas bon avec les expressions régulières, mais quelque chose commedevrait fonctionner, si l'expression régulière est correct.
Utiliser ce code si vous voulez qu'il soit insensible à la casse
Je suis d'accord avec Robert Harvey solution, sauf pour une petite modification:
Ce sera de remplacer les deux "Ouest" et "l'ouest" avec votre nouveau mot
Insérer l'expression régulière dans le code avant la classe
ci-dessous est le code pour la chaîne de remplacer à l'aide de regex
source : http://www.dotnetperls.com/regex-replace
En Java,
String#replace
accepte les chaînes de caractères dans les regex format, mais C# peut faire cela en utilisant les extensions:Et de l'utiliser comme:
classe Regex est statique, lorsque Vous utilisez la méthode Replace (Regex.Remplacer).