Regulärer Ausdruck gesucht

  • Folgender Text ist z.B. gegeben:

    HTML
    <img alt="alttext" src="datei.jpg" style="width: 100px; height: 200px; border-width: 1px; border-style: solid; margin: 3px;" />


    Ich brauche daraus jetzt den Dateinamen, also datei.jpg

    Da ich mit RegEx permanent auf Kriegsfuß stehe, wäre ich für eine Lösung dankbar.

  • PHP
    <?
    $text = '<img alt="alttext" src="datei.jpg" style="width: 100px; height: 200px; border-width: 1px; border-style: solid; margin: 3px;" />';
    preg_match_all('#src="(.*?)"#', $text, $match);
    echo $match[1][0];
    ?>

    =)

    wert.TeeeX.de
    Wie gut ist die technische Umsetztung deiner Website wirklich?
    Teste es!

  • Hatte mir mal vor einiger Zeit "Besser PHP Programmieren" von Carsten Möhrke aus Galileo Computing gekauft. Sind einige gute Seiten zum Thema RegEx drin, generell n gutes Buch, gibt ja leider nicht soviele, die über das Einsteigerniveau hinaus gehen.

    Und ansonsten Learning by Doing, für TeeeX musste ich ja viel mit RegEx arbeiten. =)

    wert.TeeeX.de
    Wie gut ist die technische Umsetztung deiner Website wirklich?
    Teste es!

  • und sorry bandit, dass ich deinen thread dafür teilweise zweckentfremde


    Kein Problem!

    Aber ich habe noch ein Problem. Folgender String:

    PHP
    $text = 'blabla irgendwas
             <img alt="alttext" src="datei1.jpg" style="width: 100px; height: 200px; border-width: 1px; border-style: solid; margin: 3px;" />
             noch mehr blabla
             <img alt="alttext" src="datei2.jpg" style="width: 100px; height: 200px; border-width: 1px; border-style: solid; margin: 3px;" />
             ganz viel blabla';


    Darin muss ich jetzt datei1.jpg und datei2.jpg (wobei die beiden Namen immer unterschiedlich sein können) ersetzen. Wenn du mir das auch noch lösen kannst, bist du für mich der Held des Tages! :D

  • Kein Problem!

    Aber ich habe noch ein Problem. Folgender String:

    PHP
    $text = 'blabla irgendwas
             <img alt="alttext" src="datei1.jpg" style="width: 100px; height: 200px; border-width: 1px; border-style: solid; margin: 3px;" />
             noch mehr blabla
             <img alt="alttext" src="datei2.jpg" style="width: 100px; height: 200px; border-width: 1px; border-style: solid; margin: 3px;" />
             ganz viel blabla';


    Darin muss ich jetzt datei1.jpg und datei2.jpg (wobei die beiden Namen immer unterschiedlich sein können) ersetzen. Wenn du mir das auch noch lösen kannst, bist du für mich der Held des Tages! :D


    Zitat

    musste dafür nich einfach das $match-array durchlaufen??


    Ja, die Ergebnisse werden ja im Array gespeichert. Im array[0][x] der gesamte Suchstring hoch, und im array[1][x] nur das Ergebnis.


    wert.TeeeX.de
    Wie gut ist die technische Umsetztung deiner Website wirklich?
    Teste es!

    2 Mal editiert, zuletzt von -Bambino- (10. März 2010 um 11:21)

  • Danke, tak, dank u wel, thank you, kiitos, merci, köszönöm, takk, grazie, arigatô, dziekuje, hvala, muchas gracias, tack, tesekkur ederim!!!!!!!!!

  • Und weiter geht's:

    Irgendwo in einem Text steht:

    Zitat

    <a href>http://www.google.de</a>

    Daraus muss werden

    Zitat

    <edit>
    Hab's rausgefunden, indem ich mit dem Quellcode von -Bambino- rumgespielt habe.
    Lösung:

    PHP
    preg_match_all('#<a href>(.*?)</a>#', $text, $match);

    </edit>

    2 Mal editiert, zuletzt von bandit600 (10. März 2010 um 12:11)

  • Und weiter geht's:

    <edit>
    Hab's rausgefunden, indem ich mit dem Quellcode von -Bambino- rumgespielt habe.
    Lösung:

    PHP
    preg_match_all('#<a href>(.*?)</a>#', $text, $match);

    </edit>

    Entweder so, oder per Backreference:

    Ist sauberer und schneller, denke ich. =)

    wert.TeeeX.de
    Wie gut ist die technische Umsetztung deiner Website wirklich?
    Teste es!

  • Ist sauberer und schneller, denke ich.


    Da ich das für eine einmalige Aktion brauche, ist sauberer und schneller nicht so wichtig. ;) Aber trotzdem danke!

  • Da ich das für eine einmalige Aktion brauche, ist sauberer und schneller nicht so wichtig. ;) Aber trotzdem danke!

    Okay, aber wenn du es ersetzten willst, ist es auch kürzer, kann ich mir denken, aber wenns einmalig is, isses egal... ;)

    wert.TeeeX.de
    Wie gut ist die technische Umsetztung deiner Website wirklich?
    Teste es!

  • ja vielleicht kennste auch gute seiten oder literatur..
    wie hast du dir des denn angeeignet?

    und sorry bandit, dass ich deinen thread dafür teilweise zweckentfremde

    Ich finde diese Seite ganz gut.
    Bei regulären Ausdrücken gilt ganz klar, man muss das üben, sonst bekommt man es nicht rein. Das kann man sich nicht eben mal durch einmal durchlesen aneignen. ;)

    Gruß crAzywuLf :D