reguläre Ausdrücke

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

  • reguläre Ausdrücke

    Hallo Zusammen,

    reguläre Ausdrücke sind ein Thema für sich!
    Ich habe mittlerweile zig Tutorials darüber und habe die Suchfunktion hier zum Glühen gebracht und bin jetzt auch schon für meine Verhältnisse recht weit aber jetzt brauche ich doch eure Hilfe:

    Ich lese Grafiken aus HTML-Dateien aus mit folgendem regulären Ausdruck:

    PHP-Code:
    src=['\"]?([^'\"> ]+) 
    Funktioniert auch so weit ganz gut, nur findet dieser Ausdruck auch andere src-Dateien, wie z.B. midi-Dateien.

    Auch wenn ich keinen kenne, der midi-Dateien einbindet, ist es möglich und deshalb möchte ich das ausschliessen.

    PHP-Code:
    <img.+src=['\"]?([^'\"> ]+) 
    Mit Angabe von <img.+ könnte ich das verhindern, nur leider werden image-Tags, die in der HTML-Datei durch einen Zeilumbruch getrennt werden, nicht mehr gefunden.

    Deshalb möchte ich mit Hilfe von jpg|gif innerhalb des src die Suche einschränken ABER ich bekomme es nicht hin
    Kann mir vielleicht einer von euch bitte helfen jpg|gif richtig dazwischen zu quetschen?

    Für eure Hilfe im voraus vielen Dank!

    Gruß
    Jofris

  • #2
    *VERSCHIEB* nach php
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      blätter mal ein paar postings tiefer ... ca. montag morgen hatten wir das schonmal
      Kissolino.com

      Kommentar


      • #4
        Re: reguläre Ausdrücke

        Original geschrieben von Jofris
        PHP-Code:
        <img.+src=['\"]?([^'\"> ]+) 
        Mit Angabe von <img.+ könnte ich das verhindern, nur leider werden image-Tags, die in der HTML-Datei durch einen Zeilumbruch getrennt werden, nicht mehr gefunden.
        schon mal versucht, den zusätzlichen modifier m dazuzusetzen?

        tutorial: Der m-Modifier ist das Komplement zum s-Modifier: Die Zeichenkette wird nicht in Zeilen aufgetrennt, sondern im Ganzen behandelt.

        der dürfte hier nämlich m.E. erforderlich sein, denn ein stück weiter unten steht bezügliches des punktes als metacharakter:

        Der Punkt steht für jedes beliebige Zeichen, außer einem Zeilenumbruch, wenn der m-Modifier nicht explizit angegeben wurde.


        also, probier mal
        Code:
        !<img.+src=['\"]?([^'\"> ]+)!mi
        das i habe ich mal noch hinzugefügt, um case-sensibility auszuschalten ...
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Vielen Dank!

          Wahsaga, Wurzel und Abraxax,

          vielen Dank für eure Hilfe!

          Besonderen Dank an Wahsaga - hat geklappt!

          Gruß
          Jofris

          PS: Reguläre Ausdrücke ist echt die Königsdisziplin !!!

          Kommentar


          • #6
            Hm noch ne Kleinigkeit, also entweder kannst du dir die Klammer im RegEx sparen:

            !<img.+src=['\"]?[^'\"> ]+!mi

            oder aber du möchtest den Dateinamen abfragen.
            Dann:

            !<img.+src=['\"]?([^'\"> ]+)(?:.*)!mi
            Grüsse,
            Sebastian


            Profil Flex Freelancer
            Twitter twitter.com/flashhilfe
            Web Flash und Flex Community

            Kommentar

            Lädt...
            X