Regex mit Anführungszeichen

  • VB.NET

Es gibt 12 Antworten in diesem Thema. Der letzte Beitrag () ist von Link275.

    Regex mit Anführungszeichen

    Huhu
    ich habe im Moment glaub ich ein kleines Denkproblem :D Ich will mit Regex einen String auslesen. Zur Begrenzung hab ich halt rechts und links was eingefügt, dies beinhaltet jedoch Anführungszeichen. Jetzt wollen diese AZ irgendwie nicht so ganz mit den normalen vom RegEx^^ Hat da jemand ne Lösung?


    Grüße
    Chucky109´

    VB.NET-Quellcode

    1. Dim keineahnung_r As System.Text.RegularExpressions.Regex = New System.Text.RegularExpressions.Regex("<select name="(\w+)" size="1">")

    Link275 schrieb:

    Hi,

    "escapen" heißt das Stichwort. Übrigens auch das = Zeichen. Außerdem musst du die doppelt machen damit das klappt in VB.


    Link :thumbup:


    Ah ok, aber wie escape ich das = Zeichen?

    VB.NET-Quellcode

    1. Dim keineahnung_r As System.Text.RegularExpressions.Regex = New System.Text.RegularExpressions.Regex("<select name""=""(\w+)"" size=""1"">")
    Du stellst ein \ voran, also \= dann. Das machst du bei (fast) allen Zeichen (Punkt, Dollar, Zirkumflex, Istgleich, Prozent und so weiter, also für alle Zeichen die eine bestimmte Funktion haben).

    Siehe auch mein Tut: klick


    Link :thumbup:
    Hello World
    Danke :)

    Leider funktioniert es immer noch nicht so ganz

    Der Originalstring ist folgender:

    Quellcode

    1. <select name="3568c29a9d29c10f3166d737a0e218a2" size="1">


    VB.NET-Quellcode

    1. Dim keineahnung_r As System.Text.RegularExpressions.Regex = New System.Text.RegularExpressions.Regex("<select name\=""(\w+)"" size\=""1"">")


    Eigtl. sollte doch alles richtig sein, oder? :o

    VB.NET-Quellcode

    1. Dim keineahnung_r As New System.Text.RegularExpressions.Regex("<select name\=" & Chr(34) & "\w+" & chr(34) & " size\=" & chr(34) & "1" & chr(34) & ">")


    so funktionierts :)
    SWYgeW91IGNhbiByZWFkIHRoaXMsIHlvdSdyZSBhIGdlZWsgOkQ=

    Weil einfach, einfach zu einfach ist! :D
    Hi,

    -->>escapen!
    Mach mal ganz oben in deinem Code:

    VB.NET-Quellcode

    1. Imports System.Text.RegularExpressions


    Mir fehlt das bissl das selbstständige Denken ich will dir keine fertige Komplettlösung bieten, weil das was du machst sind eigentlich nur Leichtsinnsfehler. Schau dir die Fehlermeldung doch mal genauer an, da gibts doch extra so schöne Beschreibungen (wovon die meisten ja doch recht aufschlussreich sind) inklusive der Nummer der Zeile, in der der Fehler ist.

    @BiedermannS: So kann man es auch machen ....... muss man aber nicht



    Link :thumbup:
    Hello World

    Link275 schrieb:

    Hi,

    -->>escapen!
    Mach mal ganz oben in deinem Code:

    VB.NET-Quellcode

    1. Imports System.Text.RegularExpressions


    Mir fehlt das bissl das selbstständige Denken ich will dir keine fertige Komplettlösung bieten, weil das was du machst sind eigentlich nur Leichtsinnsfehler. Schau dir die Fehlermeldung doch mal genauer an, da gibts doch extra so schöne Beschreibungen (wovon die meisten ja doch recht aufschlussreich sind) inklusive der Nummer der Zeile, in der der Fehler ist.

    @BiedermannS: So kann man es auch machen ....... muss man aber nicht



    Link :thumbup:


    Das Imports ist natürlich drin.

    Es gibt nur keine Fehlermeldung, wenn ich mir das ganze Ausgeben lass, ist die MessageBox leer :/

    Was genau muss ich denn noch escapen? Das = wurde escaped und die Anführungszeichen sind auch doppelt wo sie doppelt sein müssen, oder?
    Das Imports ist natürlich drin

    ...

    VB.NET-Quellcode

    1. Dim keineahnung_r As New System.Text.RegularExpressions.Regex

    Wieso dann alles dazuschreiben? Was meinste denn wofür das Imports da ist?

    Und das mit den Anführungszeichen, das wirste mit bisschen nachdenken auch gleich in Griff kriegen, da bin ich sicher :thumbup:


    Link :thumbup:
    Hello World

    Link275 schrieb:

    Das Imports ist natürlich drin

    ...

    VB.NET-Quellcode

    1. Dim keineahnung_r As New System.Text.RegularExpressions.Regex

    Wieso dann alles dazuschreiben? Was meinste denn wofür das Imports da ist?

    Und das mit den Anführungszeichen, das wirste mit bisschen nachdenken auch gleich in Griff kriegen, da bin ich sicher :thumbup:


    Link :thumbup:


    Ah ok, ja stimmt :D

    Hm also ich hab jetzt schon verschiedenes probiert, und testweise mal die lange Version von Biedermann genommen, aber selbst da bekomm ich ne weiße Messagebox 8| Also liegts an dem String, in dem dieser "Regexstring" gesucht wird oder?

    VB.NET-Quellcode

    1. Dim variable As String = RegEx.Match([dein string], [dein pattern], [regex options]).ToString() 'Testweise...
    2. MsgBox(variable)



    So oder so ähnlich, kanns grade nich testen, deswegen bin ich mir bei der Reihenfolge ned ganz sicher


    Link :thumbup:
    Hello World