Carsten: reguläre Ausdrücke mit .*

Beitrag lesen

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