Ankündigung

Einklappen
Keine Ankündigung bisher.

[REGEX] Match all Image urls

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [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:
    (https?:\/\/(?:[a-zA-Z0-9\S]+\.)?[a-zA-Z0-9\S]+\.[a-z]{2,4}\/[^\s]+\.(?:jpe?g|gif|png))[^\.]
    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


    MAtch liste:
    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>

  • #2
    Bin mir nicht ganz sicher, ob ich verstanden habe, was Du mit direkte Image links meinst, aber das sollte imho den Zweck erfüllen:
    PHP-Code:
    preg_match_all'#(http://[^"]+\.(jpg|gif|png))#is'$matchList$matchResult );
    print_r$matchResult ); 

    Kommentar


    • #3
      so gehts

      danke arne drews, dein lösungsansatz hat mir geholfen meinen regex zu fixen:

      PHP-Code:
      (https?:\/\/(?:[a-zA-Z0-9]+\.)?[a-zA-Z0-9]+\.[a-z]{2,4}\/[^\s"]+\.(?:jpe?g|gif|png))[^\.] 
      sieht bischen komplex aus aber dieser ganzer teil ist nur für die domain matchen da:
      "(https?:\/\/(?:[a-zA-Z0-9]+\.)?[a-zA-Z0-9]+\.[a-z]{2,4}"

      Kommentar


      • #4
        Entschuldige, aber wofür benötigst Du denn das ganze Gedöns
        Sollte auch bei meiner RegEx das rauskommen, was Du benötigst...

        Kommentar


        • #5
          ne deine matcht zu viel auch normale urls usw.

          Kommentar


          • #6
            ah ok... welche der urls willste denn haben? Alleinstehende? aus dem src-Attribut? aus dem href-Attribut?

            Kommentar


            • #7
              eigentlich alle echten Bilder urls... ich denke die ausm href-attrubut wären auch überflüssig. aber alles andere. und wie gesagt urls mit endungen jpg.html o.ä sind auch keine bilder.

              Kommentar


              • #8
                Dann grenzen wir das halt ein:
                Code:
                #(?<!href=")(https?://[^"]+\.(jpg|gif|png))(?!.html)#is

                Kommentar


                • #9
                  deins matcht immer noch zu viel die ganzen zeichen die vor und hinter der url sein künten usw matcht es mit.,
                  da ist meine lösung besser meiner meinung nach.

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

                  Kommentar


                  • #10
                    die ganzen zeichen die vor und hinter der url sein künten usw matcht es mit.
                    rätst Du das
                    Wenn ich die RegEx über Deine Matchliste aus dem Eingangspost laufen lassen, erhalte ich dieses Ergebnis für $matchResult[0]:
                    Code:
                    Array
                    (
                        [0] => http://picsee.net/upload/2011-12-13/46377a9e93a.jpg
                        [1] => https://lh6.googleusercontent.com/-U88QdNSQ/Trk3MI/AAArw/4kjrQMmpjQ/s512/94301.jpg
                        [2] => http://img80.imageporter.com/i/0071/kjhgvykst63_t.jpg
                        [3] => http://img80.imageporter.com/i/00754/vue_t.jpg
                        [4] => http://img80.imageporter.com/i/074/v3r89b1xue_t.jpg
                    )
                    ...weder davor noch dahinter zu viele Zeichen

                    Kommentar


                    • #11
                      ich weiß aber meine matchliste ist größer das sind auch sachen wie. es müssen möglichst alle faktoren die sein könnten berücksichtigt werden.


                      Code:
                      [img2]http://ist1-1.filesor.com/pimpandhost.com/4/0/6/9/40691/E/l/Y/EvlY/imag001.jpg[/img2]
                      
                      http://ist1-1.filesor.com/pimpandhost.com/4/0/6/9/40691/E/l/Y/EvlY/imag001.jpg.php
                      http://ist1-1.filesor.com/pimpandhost.com/4/0/6/9/40691/E/l/Y/EvlY/imag001.jpg.htm
                      http://4.bp.blogspot.com/-B1wC67OtA/TaiOr5hFI/AAAAAAAAAEU/8A0r5xY15zE/s1600/1702.jpg
                      
                      --> https://ist1-1.filesor.com/pimpandhost.com/4/0/6/9/4069/E/l/Y/EvlY/imag001.jpg
                      Hallo https://ist1-1.filesor.com/pimpandhost.com/4/0/9/40691/E/l/Y/EvlY/imag001.jpghallo

                      Kommentar


                      • #12
                        Stimmt... Habe grad k.A. warum, aber Du hast Recht.
                        Kann nur ein flüchtiger Fehler sein. Ich mach Feierabend und schau morgen nochmal nach.

                        Kommentar


                        • #13
                          ja das regex ist manchmal verflixt wie ein knobelspiel^^
                          aber hast mir eh weitergeholfen am anfang das ich weitergekommen bin
                          natürlich bin ich für perfektionierungsvorschläge immer bereit.

                          derzeitiger stand:
                          Code:
                          (?<!href\=")(https?:\/\/(?:[a-zA-Z0-9-]+\.)?(?:[a-zA-Z0-9-]+\.)?[a-zA-Z0-9-]+\.[a-z]{2,4}\/[^\s"\[\]]+\.(?:jpe?g|gif|png))[^\.]

                          Kommentar


                          • #14
                            Denn probier das nochmal:
                            Code:
                            #(?<!href=")(https?://[\d\w\-\./]+\.(?:jpe?g|gif|png)(?!\.))#is
                            ...gut´s Nächtle

                            Kommentar


                            • #15
                              joa das sieht so aufn ersten blick gut aus. werds dauerhaft testen thx

                              und noch ein kleiner syntax error fix :

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

                              Kommentar

                              Lädt...
                              X