Ersetzen von unbestimmter zeichenfolge

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von petaod.

    Ersetzen von unbestimmter zeichenfolge

    Hi leuts,

    ich hab hier mal wieder ein problem ich habe einen text in dem immer mal wieder eine ungewollte zeichenfolge vorkommt:

    [0;33;1

    Bzw immer der selbe bausatz:

    [X;X;X

    (X ist immer eine zahl)

    Die frage ist wie kann ich alle solchen zeichenfolgen löschen ehalte aber sachen wie das:

    [test

    Oder das:

    [test;test

    SpieleArenaORG schrieb:

    Die frage ist wie kann ich alle solchen zeichenfolgen löschen ehalte aber sachen wie das:
    Wenn Du diese Zeichenfolgen löschen willst, musst Du sie durch einen Leerstring ersetzen.
    Wenn bei Dir danach "test" drinne steht, ersetzt Du sie offensichtlich nicht durch einen Leerstring, sondern durch "test".
    Da musste rauskriegen, woher das kommt und ebenfalls löschen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Verschiedene Wege führen nach Rom.
    Bestimmte Texte kann man mit z.B. Replace löschen.
    Man kann die zu löschenden Text mit einem Split finden.

    BeispieL
    abcdegasdafas[1;2;3 wird zu abcdegasdafas

    VB.NET-Quellcode

    1. Text = "abcdegasdafas[1;2;3"
    2. Text = Text.replace(Text.split("["c).last),"")
    There is no CLOUD - just other people's computers

    Q: Why do JAVA developers wear glasses?
    A: Because they can't C#

    Daily prayer:
    "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."
    Also @ErfinderDesRades danke für dein Hinweis also:

    Ich habe eine abfrage in vb die aus dem Internet sich einen String zieht. Dass Problem ist dass der string unregelmäsige Color codes enthält
    also sowas wie

    Brainfuck-Quellcode

    1. [16:13:17] [Server thread/INFO]: [0;31;1m[[0;34;22mSpieleInterface[0;31;1m] [0;37;1m[0;32;22m-----------------------------------------------------[m


    die color codes sind die hier:

    Quellcode

    1. [0;31;1m


    nur das problem ist das die zeichen varieieren je nach server ausgabe...

    Und mein Problem ist es das ich diese weg haben muss...


    Beispiel Text:


    ><[16:13:17] [Server thread/INFO]: [0;31;1m[[0;34;22mSpieleInterface[0;31;1m] [0;37;1m[0;32;22m-----------------------------------------------------[m><
    ><[16:13:17] [Server thread/INFO]: [0;31;1m[[0;34;22mSpieleInterface[0;31;1m] [0;37;1m[0;32;22m SpieleInterface by SpieleArena[m><



    Problem die Colorcodes könnten jede mögliche farbe enthalten und somit auch anders lauten wobei der bausatz gleich ist
    @SpieleArenaORG Mach mal lieberf eine Zeile ganz als zwei Zeilen halb.
    Das Schema, insbesondere die Klammerung mit [] ist noch unklar.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    wenn ich deinen Beispieltext angucke, scheint mir, du willst Zeichenfolgen entfernen, die mit [ anfangen und mit m aufhören.
    Solch geht mit Regex ziemlich fein:

    VB.NET-Quellcode

    1. Dim s = "><[16:13:17] [Server thread/INFO]: [0;31;1m[[0;34;22mSpieleInterface[0;31;1m] [0;37;1m[0;32;22m-----------------------------------------------------[m><><[16:13:17] [Server thread/INFO]: [0;31;1m[[0;34;22mSpieleInterface[0;31;1m] [0;37;1m[0;32;22m SpieleInterface by SpieleArena[m><"
    2. Dim s2 = System.Text.RegularExpressions.Regex.Replace(s, "\[[^\[]*m", "")

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „ErfinderDesRades“ ()

    SpieleArenaORG schrieb:

    was du meinst
    Du hast zwei Zeilen gepostet, ich nehme mal an, das sind zwei Ausschnitte.
    @ErfinderDesRades Dachte ich auch, jedoch enden beide Zeilen mit [m, was da zwar reinpasst, aber eben nicht richtig reinpasst.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Das sieht für mich stark nach Escape-Sequenzen zur Terminalsteuerung aus, bei denen das ESC bereits ausgefiltert (oder hier nicht dargestellt) wurde.
    Hier scheinen es CSI-Sequenzen zu sein.
    In dem Fall gilt allgemein, dass die Sequenz durch ESC eingeleitet wird und mit dem ersten darauffolgenden Buchstaben (einschließlich) abgeschlossen wird.
    Diese Steuersequenz kann interpretiert (oder ausgefiltert) werden.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „petaod“ ()