Announcement

Collapse
No announcement yet.

Regex Links aus String holen.

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Regex Links aus String holen.

    Hi,

    Ich versuche via Regex alle Links (sprich alles das mit http:// beginnt) anzeigen zu lassen, versucht habe ich dies so:
    [highlight=c#]
    foreach (Match match in Regex.Matches(test, @"(?<!\w)http://\w+"))
    {
    string ProcessedText = match.Value;
    richTextBox1.AppendText(ProcessedText);
    }
    [/highlight]

    Das Problem ist jetzt, dass er die Endung weglässt also wenn mein string so aussieht:

    string test = "adghzt http://google.de 789";

    dann spuckt er mir nur http://google aus, ich denke regex denkt dass beim . ende ist, nun ist meine frage wie ich dies verhindern kann also dass er die Endung mit rannimmt.

    Lg Pandu
    Zuletzt editiert von Pandu; 21.11.2010, 14:15.

  • #2
    Lade die Datei in den Webbrowser-Control und hole dort über das IHTMLDocument-Interface alle Links.

    Comment


    • #3
      Davon abgesehen, was verstehst du unter dm "Ende" eines Links. Das von dir beschrieben google Beispiel ( http://google.de 789) ist kein zulässiger Link.

      Des Weitern wäre zu definieren, ob du den href oder den Text eines Anker Tag lesen willst
      Christian

      Comment


      • #4
        Hallo,

        das http://google.de ist kein Link im HTML Format, sorry für die falsche ausdrucksweiße.
        Ich erkläre es mal ausführlicher.

        Ich habe strings, welche zur Laufzeit gefüllt werden, darunter sind dann einige ausdrücke wie http://blabla.de usw, (blabla ist variabel) nun möchte ich aus diesem string alles was mit http:// anfängt herausziehen, was auch klappt allerdings lässt er die endung wie .de .com usw einfach weg.

        Und das mein ich mit "Ende" ich sag ja regex er soll alles mit http:// rausziehen allerdings denkt er wohl dass der . vor der Endung eine art Haltelinie symbolisiert und hört deswegen dort auf, diese "Linie" will ich nun verschieben bis z.B. ein Leerzeichen oder ein Zeilenumbruch kommt usw, so dass ich eben an den kompletten Link komme.

        Lg Pandu

        Comment


        • #5
          Dann ist \w falsch

          Dann ist das Ende des String ein Punkt gefolgt von max. 3 Zeichen und einem Leerzeichen

          http://www.fileformat.info/tool/regex.htm
          Christian

          Comment


          • #6
            Probier mal: http://[\w+|.]*

            \w beinhaltet nicht den Punkt.

            Comment


            • #7
              Weiterhin sind Endungen wie + oder * ebenfalls nicht zielführend, da nicht der gesamte String gematched werden soll, sondern die Teilstücke gefunden werden sollen

              http://msdn.microsoft.com/en-us/libr...(v=VS.71).aspx

              MatchCollection
              Christian

              Comment


              • #8
                Habe es mit http://[\w+|.]* hinbekommen.

                Wenn es noch eine bessere möglichkeit gibt bin ich für alles offen, wenn nicht vielen dank!

                Comment


                • #9
                  Würde es mit

                  http://.*\.\S{1,3}

                  probieren


                  Bild1.jpg
                  Christian

                  Comment


                  • #10
                    http://[\w+|.]*

                    Der | im Ausdruck ist dort unnötig. Alles was in [] steht ist schon mit OR verbunden
                    Christian

                    Comment

                    Working...
                    X