Entferne überflüssige Whitespaces mit C#

Heute wurde ich gefragt, ob und wie es möglich sein, mit Hilfe von C# alle doppelten bzw. überflüssigen Whitespaces in einem Text zu entfernen. Mit Whitespaces meinte er nicht nur Leerzeichen, sondern auch Zeilenumbrüche sowie Tab's, etc.

Trim() ist hierbei keine Möglichkeit, da wir ja wissen, das Trim() nur die Whitespaces am Anfang und am Ende eines Strings entfernt. Mit "Replace" kann man zwar auch Zeichen innerhalb des Textes ersetzen, was uns aber an dieser Stelle ebenfalls nichts bringt, da wir ja nicht alle, sondern nur die überflüssigen Whitespaces entfernen wollen. Die Lösung für diese Problem nennt sich RegEx.

Der Text, wie er vorher aussah:

Ihr naht euch wieder  ,                schwankende Gestalten!             Die früh sich einst dem trüben Blick gezeigt.
   Versuch’ ich  wohl euch         diesmal fest zu halten?

soll nachher wie folgt aussehen.

Ihr naht euch wieder, schwankende Gestalten! Die früh sich einst dem trüben Blick gezeigt. Versuch’ ich wohl euch diesmal fest zu halten?

Die nun folgende Code Zeile macht genau das. Sie entfernt überflüssige Whitespaces...

  1. string text = "Ihr naht euch wieder , schwankende Gestalten! Die früh sich einst dem trüben Blick gezeigt. Versuch’ ich wohl euch diesmal fest zu halten?";
  2. string textClean = System.Text.RegularExpressions.Regex.Replace(text, @"\s+", " ");

Aber nicht vergessen: Mit dieser Lösung werden auch alle Whitespaces, inklusive Zeilenumbrüche, Tabs, usw. ebenfalls entfernt.

Tags: 
Kategorie: 

Kommentare

Einfach, aber nützlich, Danke :-)

Neuen Kommentar schreiben