Mailinglisten-Archive |
Thomas Koudela schrieb am 23.09.2006: >Hallo Stephan. > > > Ich tüftle gerade an einem regulären Ausdruck. > > Ich möchte alle Html - Tags aus einem Html - Skript entfernen > > und suche nach einer Lösung. > > > > [...] > > > > $inhalt1 = preg_replace("#(<)([\w\W]+)(>)#","",$inhalt); > > > > Leider loescht diese Variante den gesamten Text. Ich möchte nur >die > > Html - Kommandos entfernen. Also eine Aussage wie 'nicht <' >einbauen ? > >Nach den Standardeinstellung wird die Pattern Syntax greedy >interpretiert, d.h. preg_replace versucht so viele Zeichen wie >möglich >bei [\w\W]+ zu finden. "<p>Dies ist <b>ein</b> (Ab-)Satz.</p>" wird >dadurch zu "", weil nach der Klammer auf, die letzte verfügbare >Klammer >gesucht wird, bei der [\w\W]+ dazwischen passt. > >Dies kannst Du ändern indem Du entweder den Quantifier Minimizer "?" >verwendest oder mit "(?U)" PCRE_UNGREEDY setzt. > >Das sieht dann so: >'/<(.*?)>/' >oder so: >'/(?U)<.*>/' >oder mit minimalen Unterschieden so: >'/<[\w\W]+?>/' >oder so: >'/(?U)<[\w\W]+>/' >aus. > >Gruß, Thomas Hallo und danke für die Info ! Die Idee mit UNGREEDY ist Klasse. Gibt es nicht noch eine Ausdrucksform mit der gesagt wird 'nicht <' ? M.f.G. Stephan
php::bar PHP Wiki - Listenarchive