2010-06-08 3 views

Répondre

11

Vous pouvez certainement utiliser une expression rationnelle pour cela, et je suis sûr que quelqu'un de plus malin que moi vais exactement poster comment le faire :), mais vous ne probablement pas vouloir utiliser une regex dans ce cas. Il sera certainement plus rapide pour assurer simplement que la chaîne n'est pas nul ou vide, puis retourner

Char.IsWhiteSpace(myString[length - 1]) 
+0

wow, ne savait pas à ce sujet, et il a été autour depuis 2.0 http: // msdn.microsoft.com/en-us/library/system.char.iswhitespace.aspx – TesterTurnedDeveloper

0

Que diriez-vous

.+\s$ 
1

Comme ceci:

if (Regex.IsMatch(someString, @"\s+$")) 
  • \s matchs blancs
  • + signifie un ou plusieurs de l'expression précédente
    (un ou plusieurs caractères blancs)
  • $ signifie la fin de la chaîne
0

La fonction Trim() (et TrimEnd()) supprime tous espaces, de sorte que vous pouvez le faire en comparant un chaîne à la version réduite:

if (myString != myString.TrimEnd()) 
{ 
    //the string ends with whitespace 
} 

en pratique, d'autres réponses déjà ici sont bien sûr plus direct et plus rapide que la réalisation du test. Cependant, mon expérience est la plupart du temps quand vous avez besoin de savoir cela, vous aurez bientôt besoin d'utiliser la chaîne rognée, aussi bien. Dans ces circonstances, il est souvent utile de mettre cela en une variable, pour éviter d'avoir à appeler TrimEnd() plus d'une fois:

var trimmed = myString.TrimEnd(); 
if (myString != trimmed) 
{ 
    //use trimmed here 
} 
Questions connexes