Nicy: [REGEX] Match all Image urls

Hallo,
ich stehe vor einem REGEX Problem bei dem ich hilfe benötige

Es sollen alle direkte Image links gematcht werden. keine anderen urls etc.
(auch keine links mit endung jpg.html)

Diese von mir etnwickelte regex funktioniert nur leider nicht mit dem letzten match aus der liste (siehe match liste unten).
CODE[^.][/CODE]

folgendes falsches ergebnis wird ausgegebenen (letzter match aus der liste):
[CODE]http://www.imageporter.com/v3r89b31hxue/5ab18d1d44bfbff0f8ff49c67192c7.jpg.html">http://img80.imageporter.com/i/074/v3r89b1xue_t.jpg[/CODE]

[B]MAtch liste: [/B]
[CODE]<img src="http://picsee.net/upload/2011-12-13/46377a9e93a.jpg" alt="4637a7a9e93a.jpg" />

https://lh6.googleusercontent.com/-U88QdNSQ/Trk3MI/AAArw/4kjrQMmpjQ/s512/94301.jpg

<a href="http://www.imageporter.com/kjhgvyksv63/front.jpg.html"> http://img80.imageporter.com/i/0071/kjhgvykst63_t.jpg </a>

<a href="http://www.imageporter.com/v3r89b31hxue/52992c7.jpg.html">http://img80.imageporter.com/i/00754/vue_t.jpg</a>

<a href="http://www.imageporter.com/v3r89b31hxue/5ab18d1d44bfbff0f8ff49c67192c7.jpg.html">http://img80.imageporter.com/i/074/v3r89b1xue_t.jpg</a>
[/CODE]

  1. Hi,

    LMGTFY

    schon der 2. Google Treffer sollte passen:

    RegexLib

    einige Beispiele.

    Ciao, Frank

    1. falsch frank,
      hier gehts um BILDER urls nicht um normale urls.

      meine bisherige lösung:

      verbesserungsvorschläge erwünscht:
      (?<!href\=")(https?:\/\/(?:[a-zA-Z0-9-]+\.)?(?:[a-zA-Z0-9-]+\.)?[a-zA-Z0-9-]+\.[a-z]{2,4}\/[^\s"\[\]]+\.(?:jpe?g|gif|png))[^\.]

      1. Liebe(r) Nicy,

        hier gehts um BILDER urls nicht um normale urls. [...]
        .(?:jpe?g|gif|png)

        zum einen vermisse ich eine Möglichkeit für Dateiendungen in Großbuchstaben (gerne auch gEmIsChT), und zum anderen kann ich nicht beurteilen, warum nur diese drei Dateiformate für Dich zu den Bilder-URLs zählen.

        Warum setzt Du nicht generell einen Schalter für case-insensitive und sparst Dir ein paar Zeichen Code? Die Lesbarkeit wird es bestimmt verbessern und selbst wenn der Ausdruck bei (vielleicht fälschlicherweise) groß geschriebenen Attributnamen matched, ist die grundlegende Funktionsweise Deines Scripts sicherlich nicht gestört.

        Liebe Grüße,

        Felix Riesterer.

        --
        ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
        1. danke.

          lösung 2:
          (?<![="'])(https?://[\d\w-./]+.(?:jpe?g|gif|png)(?!.))

          1. fehler ich meinte:

            (?<!href=")(https?://[\d\w\-\./]+\.(?:jpe?g|gif|png)(?!\.))

            1. syntax error fix:

              (?<!href=")(https?://[\d\w-./]+.(?:jpe?g|gif|png)(?!.))

              1. Besteht bei dem ganzen Vorhaben nicht das Problem, dass man nicht so ohne Weiteres von der Dateiendung auf den Typ der Ressource schließen kann?

                Also... es ist relativ wahrscheinlich alles aber ich kann mit einer .php relativ simpel JPEG-Daten ausliefern ich kann meinem Webserver aber auch beibringen .bild als png auszuliefern und ich kann meinem Webserver auch sagen dass .gif-Dateien als application/xml gelten sollen.

                Zugegeben, die hinten Beispiele sind eher theoretischer Natur, aber zumindest dass man mit serverseitigen Techniken Bild-Ressourcen erzeugt erscheint mir nicht unwahrscheinlich.

                Daher wäre es vielleicht eine gute Idee (soweit möglich) die entsprechenden Ressourcen einfach abzuklopfen und so sie einen MIME-Type image/* zurück liefern es als Bild anzunehmen. (Man muss ja nur den HTTP-Header empfangen, danach kann man die Verbindung ja schon beenden.)

                Da kann man dann eine RegExp zur Hilfe nehmen um bestimmte Endungen weg zu lassen, auch hier nur ein Spiel mit der Wahrscheinlichkeit aber .html .htm .txt muss man wahrscheinlich nicht berücksichtigen .xml könnte aber eine SVG-Ressource sein (wenn die dann als application/ statt image/ ausgeliefert wird: Pech).

                Wenn du da gerade eine lokale Anwendung schreibst (eher unwahrscheinlich mit PHP) ist das alles natürlich Blödsinn XD

                1. also diese möglichkeiten fallen bei uns weg da es ein wordpress blog ist und 99,999999999999% der bilder urls haben eine echte endung mit png,gif,jpg...
                  auch wenn es ein bild mit einer anderen endung sein sollte wollen wir es nicht akzeptieren da es auch eine abuse sein könnte.

      2. Was bitte unterscheidet Bilder-URLs von URLs?

        Die Idee war, dass du in "Eigeninitiative" eine erprobte Standard-Regex für URLs verwendest und dann den notwendigen Teil anpasst?

        Whatever...
        Frank