vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - G?nnen Sie Ihrem SQL-Kommando diesen kr?nenden Abschlu?!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   RSS-Feeds  | Newsletter  | Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2017
 
zurück
Rubrik: Variablen/Strings · String-Operationen   |   VB-Versionen: VB6, VBA03.08.15
Beliebige Zeichen aus einem String entfernen

Mit Hilfe von regulären Ausdrücken lassen sich aus einem String beliebige Zeichen in einem Rutsch entfernen.

Autor:   Dieter OtterBewertung:     [ Jetzt bewerten ]Views:  2.191 
www.tools4vb.deSystem:  WinXP, Vista, Win7, Win8, Win10 Beispielprojekt auf CD 

Summer-Special bei Tools & Components!
Gute Laune Sommer bei Tools & Components
Top Summer-Special - Sparen Sie teilweise bis zu 120,- EUR
Alle sev-Entwicklerkomponenten und Komplettpakete jetzt bis zu 25% reduziert!
zum Beispiel:
  • Developer CD nur 479,20 EUR statt 599,- EUR
  • sevDTA 3.0 nur 224,30 EUR statt 299,- EUR
  •  
  • vb@rchiv   Vol.6 nur 20,00 EUR statt 24,95 EUR
  • sevCoolbar 3.0 nur 55,20 EUR statt 69,- EUR
  • - Werbung -Und viele weitere Angebote           Aktionspreise nur für kurze Zeit gültig

    Soll ein einzelnes bestimmtes Zeichen aus einem String entfernt werden, verwendet man i.a.R. die Replace-Methode:

    Dim sText As String
    sText = "Hallo, wie geht's?"
     
    ' Komma (,) aus dem String entfernen
    sText = Replace(sText, ",", "")

    Muss man mehrere Zeichen, die sich an beliebiger Stelle befinden, entfernen, müsste man die Replace-Funktion mehrfach aufrufen:

    Dim sText As String
    sText = "Hallo, wie geht's?"
     
    ' Komma (,) und Fragezeichen (?) aus aus dem String entfernen
    sText = Replace(sText, ",", "")
    sText = Replace(sText, "?", "")

    Will man bspw. alle Satzzeichen aus einem String entfernen, 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
    sText = "Hallo, wie geht's?"
     
    ' alle Satzzeichen entfernen
    sText = Replace(sText, ",", "")
    sText = Replace(sText, ".", "")
    sText = Replace(sText, ";", "")
    sText = Replace(sText, "!", "")
    sText = Replace(sText, "?", "")
    ' usw.

    Für diese und ähnliche Zwecke sollte gibt es aber auch die "regulären Ausdrücke". Um reguläre Ausdrücke anwenden zu können, müssen Sie dem Projekt einen Verweis auf Microsoft VBScript Regular Expressions 5.x hinzufügen oder Sie verwenden Late-Binding, wie in unserem Tipp.

    Dim sText As String
    sText = "Hallo, wie geht's?"
     
    ' RegExp via Late-Bindung instanzieren
    Dim oRegExp As Object
    Set oRegExp = CreateObject("VBScript.RegExp")
    With oRegExp
      .IgnoreCase = True
      .Global = True
      .MultiLine = True
      .Pattern = "[\.,!?;:]"
     
      ' alle nicht zulässigen Zeichen ersetzen
      sText = .Replace(sText, "")
    End With
    Set oRegExp = Nothing

    Die zu ersetzenden Satzzeichen befinden sich hierbei allesamt in der Eigenschaft Pattern nach [\ und vor dem anschließenden ] Zeichen. In obigen Fall werden demnach die Zeichen ".,!?;:" aus dem String entfernt.

    Um das Ganze ein wenig universeller einsetzbar zu machen, verpacken wir die "Ersetzen-/Löschfunktion" in eine eigene kleine Funktion, bei der sich über einen optionalen Parameter noch ein Zeichen angeben lässt, mit dem die unzulässigen Zeichen ersetzt werden sollen. Standardmäßig wird eine leere Zeichenkette angenommen, so dass die unzulässigen Zeichen aus dem String entfernt werden.

    ' beliebige Zeichen entfernen / ersetzen
    Public Function RemoveChars(ByVal Source As String, ByVal Chars As String, _
      Optional ByVal ReplaceWith As String = "") As String
     
      ' RegExp via Late-Bindung instanzieren
      Dim oRegExp As Object  ' RegExp
      Set oRegExp = CreateObject("VBScript.RegExp")
     
      With oRegExp
        .IgnoreCase = True
        .Global = True
        .MultiLine = True
        .Pattern = "[\" & Chars & "]"
     
        ' alle nicht zulässigen Zeichen ersetzen
        RemoveChars = .Replace(Source, ReplaceWith)
      End With
      Set oRegExp = Nothing
    End Function

    Beispiel:

    Dim sText As String
    sText = "Hallo, wie geht's?"
     
    ' alle Satzzeichen entfernen
    sText = RemoveChars(sText, ".,!?;:")

    Dieser Tipp wurde bereits 2.191 mal aufgerufen.

    Voriger Tipp   |   Zufälliger Tipp   |   Nächster Tipp

    Über diesen Tipp im Forum diskutieren
    Haben Sie Fragen oder Anregungen zu diesem Tipp, können Sie gerne mit anderen darüber in unserem Forum diskutieren.

    Neue Diskussion eröffnen

    nach obenzurück


    Anzeige

    Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
    (einschl. Beispielprojekt!)

    Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
    - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
    - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
    Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
     
       

    Druckansicht Druckansicht Copyright ©2000-2017 vb@rchiv Dieter Otter
    Alle Rechte vorbehalten.
    Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

    Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel