Probleme mit RegEx beim Quellcode

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von katarofuma.

    Probleme mit RegEx beim Quellcode

    Hey,

    nachdem ich gestern mit RegEx voll Probleme hatte und mich eine Nacht mal damit beschäftigt habe kann ich doch das was ich wollte habe jetzt aber ein Problem... Mein Code ist das hier:

    VB.NET-Quellcode

    1. Dim Content As String = Replace(RichTextBox1.Text, Global.Microsoft.VisualBasic.ChrW(10), Nothing)
    2. Dim Regex As New System.Text.RegularExpressions.Regex("title=""Keulenschwinger"".*""/></a></td>"".* <td.*class=""num"">"".*""")
    3. For Each M As Match In Regex.Matches(Content)
    4. Dim Description As String = M.Value.Split("""").GetValue(7)
    5. Label1.Text = "Anzahl: " & Description


    Das funktioniert auch soweit mir geht es jetzt aber um das was hinter "num" steht und zwar kommt dort die Zahl aus dem Quelltext rein welcher in der RTB1 steht und die Zahl soll dann in Label1 angezeigt werden. Der Quelltext sieht original so aus:

    HTML-Quellcode

    1. title="Keulenschwinger" /></a></td> <td class="num">80</td>


    Das funktioniert dann aber nicht. Wenn ich jetzt aber in der RTB1 den Quelltext so schreibe

    HTML-Quellcode

    1. title="Keulenschwinger" "/></a></td>" <td class="num">"80"</td>

    Dann liest er mir auch die Zahl 80 aus das heißt der Benutzer müsste noch "" setzen das soll aber nicht so sein. So VB Code durchsucht und gesehen das ich bei dem letzten .* zwei " zu viel gesetzt habe. Bei dem />..... nach "Keulenschwinger" das gleiche. Wenn ich aber die beiden die zu viel sind entferne bekomme ich eine Fehlermeldung. Also so sieht der Code dann aus:

    VB.NET-Quellcode

    1. Dim Regex As New System.Text.RegularExpressions.Regex("title=""Keulenschwinger"".*"/></a></td>".* <td.*class=""num"">".*"")


    Dann bekomme ich die beiden Fehler:

    2 "Matches" ist kein Member von "regex".
    1 Ausdruck erwartet.

    Wie gesagt der Code ganz oben funktioniert allerdings müsste der Nutzer dann noch "" an die besagten Stellen hinzufügen. Kann mir jemand weiterhelfen? :)

    Liebe Grüße

    VB.NET-Quellcode

    1. Dim Content As String = Replace(RichTextBox1.Text, Global.Microsoft.VisualBasic.ChrW(10), Nothing)
    2. Dim Regex As New System.Text.RegularExpressions.Regex("title=.Keu.*er.*?>\d+")
    3. For Each M As Match In Regex.Matches(Content)
    4. Dim Description As String = M.Value.Split("""").GetValue(4)
    5. Label1.Text = "Anzahl: " & Description
    6. Next


    So funktioniert es jetzt perfekt ;) Vielen Dank!