Bitte Hilfe mit RegEx

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von asusdk.

    Bitte Hilfe mit RegEx

    Hallo an alle, ich möchte mich schon mal für die Hilfe bedanken =)

    ich habe seit tagen ein Problem mit RegEx, ich verstehe beim besten willen nicht wie es funktioniert...

    ich versuche aus dem String : <td class="photo_reference_number">0007274000088902</td>

    nur die Zahlen auszulesen, aber egal welchen code ich im Netz finde und anzupassen versuche, es will einfach nicht funktionieren...

    VB.NET-Quellcode

    1. Dim value As String = RichTextBox1.Text
    2. Derzeit versuche ich es so :
    3. Dim m As Match = Regex.Match(value, "(<td class=""""photo_reference_number"""">)[0-9](</td>)", RegexOptions.IgnoreCase)
    4. ' If successful, write the group.
    5. If (m.Success) Then
    6. Dim key As String = m.Groups(1).Value
    7. MsgBox(key)
    8. Else
    9. MsgBox("nö")
    10. End If


    der Inhalt der Richtextbox, ist der Seitenquellcode der den string enthält

    kann mir bitte jemand helfen ?

    Liebe Grüße


    Update :

    VB.NET-Quellcode

    1. Dim httpContent As String = WebBrowser1.DocumentText
    2. Dim ipRegEx As New Regex("<td class=""""photo_reference_number"""">""(?<string>)""</td>")
    3. Dim ersetzen As String = ipRegEx.Match(httpContent).Groups("string").ToString()
    4. TextBox1.Text = ersetzen

    will auch nicht funktionieren...

    If Energy = Low Then
    Drink(aHugeCoffee)
    Else
    Drink(aHugeCoffeeToo)
    End If

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

    Du brauchst hinter [0-9] auch einen Quantifier. Wenn dir die Anzahl an Ziffern bekannt ist, dann iwie [0-9]{10}, ansonsten etwas in Richtung [0-9]+
    »There's no need to "teach" atheism. It's the natural result of education without indoctrination.« — Ricky Gervais
    Danke für die Antwort,

    VB.NET-Quellcode

    1. Dim value As String = RichTextBox1.Text
    2. Dim m As Match = Regex.Match(value, "<td class=""""photo_reference_number"""">[0-9]+</td>", RegexOptions.IgnoreCase)
    3. ' If successful, write the group.
    4. If (m.Success) Then
    5. Dim key As String = m.Groups(1).Value
    6. MsgBox(key)
    7. Else
    8. MsgBox("nö")
    9. End If


    gibt jedoch auch ein Nö aus
    If Energy = Low Then
    Drink(aHugeCoffee)
    Else
    Drink(aHugeCoffeeToo)
    End If
    Hatte mal irgendwo gelesen das wenn mein patern " enthält ich im String 4 x " eingeben muss, unabhängig davon funktioniert es auch nicht wenn ich statt 4en, 2e nehme
    If Energy = Low Then
    Drink(aHugeCoffee)
    Else
    Drink(aHugeCoffeeToo)
    End If
    komisch - bei mir nicht

    VB.NET-Quellcode

    1. Private Sub Test()
    2. Dim value As String = " <td class=""photo_reference_number"">0007274000088902</td>"
    3. Dim m As Match = Regex.Match(value, "<td class=""photo_reference_number"">[0-9]+</td>", RegexOptions.IgnoreCase)
    4. ' If successful, write the group.
    5. If (m.Success) Then
    6. Dim key As String = m.Groups(1).Value
    7. Debug.Print(key)
    8. Else
    9. Debug.Print("nö")
    10. End If
    11. End Sub
    @ ErfinderDesRades : ist echt strange ich hab zwar mittlerwile auch nur noch 2 " aber ich mussste[0-9]+ durch (.*) ersetzen, dann ging es, evtl. hatte ich irgendwo einen fiesen tippfehler

    Danke jedenfalls an alle für eure kompetente Hilfe =) was würd ich nur ohne euch machen

    mist... das ist die einzige Stelle die ich so suchen kann bei allen anderen steht das gewünschte in der nächsten zeile, jetzt krieg ichs schon wieder nicht hin....

    VB.NET-Quellcode

    1. Dim l As Match = Regex.Match(value, "<b>Vorname:</b>[\r\n\s+](.*)", RegexOptions.IgnoreCase)
    2. 'Dim l As Match = Regex.Match(value, "<b>Vorname:</b>[\r\n](\s+(.*))", RegexOptions.IgnoreCase)
    3. If (l.Success) Then
    4. Dim key As String = l.Groups(1).Value
    5. ' MsgBox(key)
    6. tEST = tEST & " " & key
    7. Else
    8. MsgBox("nö")
    9. End If


    bestätigt mir zwar das die Stelle existiert und gibt mir auch den Namen zurück, aber inkl. der leerzeichen , kann ich die denn irgendwie weglassen ?

    If Energy = Low Then
    Drink(aHugeCoffee)
    Else
    Drink(aHugeCoffeeToo)
    End If

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