Stephan Schmid: reguläre Ausdrücke mit .*

Guten morgen,

ich habe ein Problem mit einem regulären Ausdruck unter php/ereg und weiss nicht obs an mir oder an php liegt (mit Perl gings):

Durchsuchter String: <div>hallo</div>
regulärer Ausdruck: /<(.*)>/

erwartetes Ergebnis:  div
geliefertes Ergebnis:  div>hallo</div

hat jemand eine Idee wo der Fehler ist ?

Danke
Stephan

  1. Guten morgen,

    ich habe ein Problem mit einem regulären Ausdruck unter php/ereg und weiss nicht obs an mir oder an php liegt (mit Perl gings):

    Durchsuchter String: <div>hallo</div>
    regulärer Ausdruck: /<(.*)>/

    erwartetes Ergebnis:  div
    geliefertes Ergebnis:  div>hallo</div

    hat jemand eine Idee wo der Fehler ist ?

    Danke
    Stephan

    Hi Stephan,

    das .* ist gierig und frisst erstmal alles bis zum letzten Zeichen. Dann wird einzeln von hinten
    weggenommen bis zum ersten match.
    Mach es ungierig und es funzt:
    /<(.*?)</

    geht leider nur bei den preg_xxx() Funktionen, die ereg's mögen das (so) nicht.

    Gruss,
    Carsten

    1. danke Carsten

      preg_match tut bei mir (php3) zwar nicht aber jetzt kann ich wenigstens beruhigt ins Bette gehen

      Gute Nacht