phpbar.de logo

Mailinglisten-Archive

[php] alles ausser <

[php] alles ausser <

Krauss info at krauss-internetservice.de
Sam Sep 23 14:49:26 CEST 2006


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