String säubern? -> Special Characters

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von %P%.

    String säubern? -> Special Characters

    hi leute,

    ich habe eine kleine app die einträge in unsere DB checken und updaten soll.
    nun bekomme ich einen String in dem eine reihe mist steht, wie z.B Zeilenumbrüche usw...

    Ein Beispielstring sieht zb so aus:
    Frankfurter-Strasse 15B
    04916 Herzberg />
    Jetzt sollte am besten der String gesäubert werden.
    zeilenumbrüche und sonstige sonderzeichen möchte ich nun entfehrnen.

    Damit er so aussieht:
    Frankfurter-Strasse 15B 04916 Herzberg
    Gibt es irgendeine Funktion oder Klasse oder ähnliches die soetwas kann?
    Vorallem machen mir die Zeilenumbrüche sorge!

    Sonderzeichen kann ich notfalls alle "mit hand" durchsuchen...

    thx!
    1. Array mit allen erlaubten Zeichen erstellen
    2. Schleife die den String durchgeht
    3. In der Schleife gucken ob das Zeichen nicht zu den erlaubten gehört und dann löschen oder ersetzen
    So wie Manga es beschreibt, habe ich es auch vor kurzem gemacht, um in einem SQL-Statement Variablen gegen Werte zu tauschen, sieht dann so aus:

    Brainfuck-Quellcode

    1. ' tmp ist der String mit dem Skript
    2. ' ---------------- ab hier werden Variablen im Skript durch die entsprechenden Werte ersetzt
    3. For i As Integer = 0 To VarListe.Namen.Count - 1 ' alle Variablen durchlaufen
    4. tmp = tmp.Replace(VarListe.Namen.Item(i), VarListe.Werte.Item(i))
    5. Next


    Schritt 3 ist also nur ein einziger Befehl: DeinString = DeinString.Replace(alt, neu) :)
    Oder RegEx importieren und dann:

    VB.NET-Quellcode

    1. 'Variable DeinStr ist der String von dir eben
    2. DeinStr = RegEx.Replace(DeinStr, "\n|[^\w\d\s]", "", RegExOptions.IgnoreCase)

    Geht auf jeden Fall schneller als alles andere, hierbei werden Zeilenumbrüche entfernt und alles was keine Buchstaben, Zahlen und Leerzeichen sind

    %P% 8-)
    Hello World
    @%P%: ich hab leider nur mich mit einer RegEx-Suche beschäftigt und nicht mit dem RegEx-Replace ... konnte leider kein Beispiel nennen und deswegen hab ich die simple Version genommen ^^

    wäre vielcht nur noch sinnvoll wenn du deine benutzen Parameter erklärst
    hi!

    das mit der regular ex ist ganz gut... aber funktioniert nicht

    wenn ich mir meinen string in eienr alertbox ansehe dan sehe ich meinen string mit einem umbruch....

    wenn ich "\n|[^\w\d\s]" meinen string durchsuche passiert nix.... warum? warum findet der nicht den zeilenumbruch und löscht diesen`?


    thx
    Ich dachte ich hätt's bereits verständlich genug gezeigt -.-

    ZUERST wie ich auch schon sagte RegEx importieren mit

    VB.NET-Quellcode

    1. Imports System.Text.RegularExpressions


    Dann, ins gewünschte Event, beispielsweise bei Button_Click eben

    VB.NET-Quellcode

    1. Dim DeinStr As String = "Frankfurter-Strasse 15B " & VbNewLine & "04916 Herzberg /> "
    2. DeinStr = RegEx.Replace(DeinStr, "\n|[^\w\d\s]", "", RegExOptions.IgnoreCase)
    3. MsgBox("Text nach Ersetzung unerwünschter Zeichen: " & VbNewLine & DeinStr)


    Ich weiß nicht wo das problem ist, aber wenn der Suchausdruck nicht funzt dann einfach mit "[^\w\d\s]*\n*" versuchen(ohne Anführungszeichen ;)

    Die einzelnen Parameter der RegEx.Replace-Funktion:

    DeinStr = RegEx.Replace(DeinStr, "\n|[^\w\d\s]", "", RegExOptions.IgnoreCase)
    Der erste Parameter gibt den String an, aus dem die Ersetzung vorgenommen wird, der zweiter Parameter bestimmt das Suchmuster
    wonach gesucht werden soll, wohingegen mit der dritten Zeichenfolge gefundene Suchmuster ersetzt werden, zuletzt legen wir den Suchtyp fest, hier in unserem
    Beispiel wird eben zwischen Groß- Kleinschreibung nicht unterschieden. Das Resultat wird wiederum in der Variable DeinStr gespeichert.

    Immer noch unklarheiten? ;) 8-)

    %P% :thumbup:
    Hello World

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „%P%“ ()