RegEx Frage - Bestimmten Tag nach IP durchsuchen

  • VB.NET

Es gibt 15 Antworten in diesem Thema. Der letzte Beitrag () ist von Artentus.

    RegEx Frage - Bestimmten Tag nach IP durchsuchen

    Hallo,
    ich möchte in folgendem Tag die IP (in diesem Falle 121.33.220.234") per RegEx herraussuchen.

    HTML-Quellcode

    1. <td><a target="_blank" href="http://whois.sc/121.33.220.234"> 121.33.220.234 </a></td>

    Ist es möglich, und wenn ja, mit welchem Suchschema?
    MfG
    @Artentus
    Scheint so, als hättest du vergessen, dass die Gänsefüßchen doppelt geschrieben werden müssen, wenn sie sich innerhalb von Strings befinden ;). So müsste es aussehen:

    VB.NET-Quellcode

    1. "(?<=<td><a target=""_blank"" href=""http://whois.sc/121.33.220.234"">).*(?=</a></td>)"
    @Artentus
    Hatte das so verstanden, dass man für den RegexProcessor möglicherweise einzelne Zeichen mit dem Backslash escapen müsste, da es ja teilweise unterschiedliche RegEx-Syntaxe gibt.

    nafets3646 schrieb:

    @Artentus
    Scheint so, als hättest du vergessen, dass die Gänsefüßchen doppelt geschrieben werden müssen, wenn sie sich innerhalb von Strings befinden ;). So müsste es aussehen:

    VB.NET-Quellcode

    1. "(?<=<td><a target="_blank" href="http://whois.sc/121.33.220.234">).*(?=</a></td>)"

    Das Problem ist hier nur, dass sich im Link ja auch schon die sich ständig ändernde, aber mit dem Inhalt des Tags identische IP enthalten ist. :/
    Dann eben so, ist doch kein Ding:

    VB.NET-Quellcode

    1. "(?<=<td><a target=""_blank"" href=""http://whois.sc/.*"">).*(?=</a></td>)"

    Hättest du dich selbst mal ein bisschen mit RegEx auseinandergesetzt, dann hättest du das sicher auch selbst hinbekommen.

    Artentus schrieb:

    Dann eben so, ist doch kein Ding:

    VB.NET-Quellcode

    1. "(?<=).*(?=)"

    Hättest du dich selbst mal ein bisschen mit RegEx auseinandergesetzt, dann hättest du das sicher auch selbst hinbekommen.
    Danke, leider bin ich nur auf scheiß Tutorials gestoßen und weiß nicht einmal richtig, wie man sie anwendet.
    Trotzdem danke.
    Bei RegEx was zu verallgemeinern ist recht schwer, denn ein Pattern behandelt ja immer auch nur ein bestimmtes Problem. Das einzige, was verallgemeinert werden kann, sind alle Zeichen einzeln, also die Liste im ersten Teil des Tutorials. Wenn du alles, was da drin steht, kannst dann ist der Rest eigentlich nur noch Ausprobieren.

    Artentus schrieb:

    Bei RegEx was zu verallgemeinern ist recht schwer, denn ein Pattern behandelt ja immer auch nur ein bestimmtes Problem. Das einzige, was verallgemeinert werden kann, sind alle Zeichen einzeln, also die Liste im ersten Teil des Tutorials. Wenn du alles, was da drin steht, kannst dann ist der Rest eigentlich nur noch Ausprobieren.
    Leider, muss ich gestehen, bin ich noch kaum weiter. Als zu durchsuchende Quelle habe ich einen Quelltext, aber wie lasse ich diesen nun durchsuchen und mir das gefundene Ergebnis aushändigen?
    Du fragst nach einem RegEx-Pattern und weißt nicht mal, wie du es verwenden sollst?
    Naja, ist eigentlich auch ganz einfach. Tipp:

    VB.NET-Quellcode

    1. Regex.Matches("<Quelltext>", "(?<=<td><a target=""_blank"" href=""http://whois.sc/.*"">).*(?=</a></td>)")

    Aber ich rate dir wirklich dringend, verwende niemals Technologien, die du nicht verstehst. Schau dir bitte wenigstens genau an, wie man RegEx benutzt und wie ein paar einfache Pattern aussehen, damit du nicht bloß C&P benutzt.

    Artentus schrieb:

    Du fragst nach einem RegEx-Pattern und weißt nicht mal, wie du es verwenden sollst?
    Naja, ist eigentlich auch ganz einfach. Tipp:

    VB.NET-Quellcode

    1. Regex.Matches("", "(?<=).*(?=)")

    Aber ich rate dir wirklich dringend, verwende niemals Technologien, die du nicht verstehst. Schau dir bitte wenigstens genau an, wie man RegEx benutzt und wie ein paar einfache Pattern aussehen, damit du nicht bloß C&P benutzt.
    Ja, da wollte ich wohl ein bisschen zu stürmisch mit VB.net vorankommen... Werd's mal langsamer angehen lassen, trotzdem danke.
    Mit meinem jetzigen Code:

    VB.NET-Quellcode

    1. Dim rx As Regex = New Regex(").*(?=") Dim match As Match = rx.Match(seitenQuelltext) If match.Success Then MsgBox(match.Value) End If


    Bekomme ich die Fehlermeldung, dass mein Regex-Boolean (").*(?=") zu viele "(" enthält...
    Diese Fehlermeldung erhalte ich beim Debugging: "").*(?=" wird analysiert - Zu viele )-Zeichen."
    MfG
    Du brauchst nicht immer meinen kompletten Post zitieren, das stört nur.
    Außerdem formatiere bitte deinen Code richtig, so kann ich ihn nicht lesen.
    Aber das dieses Pattern falsch ist, ist klar. Ich weiß auch nicht, wie du darauf kommst, in meinem Post steht doch das richtige.