Rubrik: Variablen/Strings | VB-Versionen: VB.NET | 02.10.07 |
Beliebige Zeichen aus einem String entfernen (.NET) Mit Hilfe von regulären Ausdrücken lassen sich aus einem String beliebige Zeichen in einem Rutsch entfernen. | ||
Autor: Dieter Otter | Bewertung: | Views: 108.986 |
www.tools4vb.de | System: WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | kein Beispielprojekt |
Soll ein einzelnes bestimmtes Zeichen aus einem String entfernt werden, verwendet man i.a.R. die Replace-Methode:
Dim sText As String = "Hallo, wie geht's?" ' Komma (,) aus dem String entfernen sText = sText.Replace(",", "")
Muss man mehrere Zeichen, die sich an beliebiger Stelle befinden, entfernen, müsste man die Replace-Funktion mehrfach aufrufen:
Dim sText As String = "Hallo, wie geht's?" ' Komma (,) und Fragezeichen (?) aus aus dem String entfernen sText = sText.Replace(",", "").Replace("?", "")
Will man bspw. alle Satzzeichen aus einem String entfernen möchte, müsste man die Replace-Funktion x-mal aufrufen! Das kostet Zeit, zumal die Replace-Funktion ggf. unnötig aufgerufen wird, falls im String bestimmte Satzzeichen gar nicht vorhanden sind!
Dim sText As String = "Hallo, wie geht's?" ' alle Satzzeichen entfernen sText = sText.Replace(",", "") sText = sText.Replace(".", "") sText = sText.Replace(";", "") sText = sText.Replace("!", "") sText = sText.Replace("?", "") ' usw.
Für diese und ähnliche Zwecke sollte stellt und das .NET Framework die Klasse "RegularExpressions" zur Verfügung, mit der o.g. Ersetz-Funktionen ganz einfach in einem Rutsch durchgeführt werden können.
Dim sText As String = "Hallo, wie geht's?" ' alle Satzzeichen entfernen sText = System.Text.RegularExpressions.Regex.Replace(sText, "[\.,!?;:]", "")
Die zu ersetzenden Satzzeichen befinden sich hierbei allesamt nach [\ und vor dem anschließenden ] Zeichen.
In obigen Fall werden demnach die Zeichen ".,!?;:" aus dem String entfernt.