Tobias Kloth: preg_replace Zahlen zwischen 5 und 22 Erlauben

Beitrag lesen

Hallo Andavos,

"<div style=" font-size:\1pt;">\2</font>", $text);

das \1 ist afaik dafür, um gefundene Teile im regulären Ausdruck nochmal zu verwenden, wenn man z.B. zwei zueinander passende Tags finden will - z.B. gibt dir:
 $str = '<div>foo</div>';
 echo preg_replace("=<(.+?)( )?.*?>(.*?)</\1>=","$3",$str);
das was innerhalb des div-Elements steht, hier also 'foo', aus. (Der Code sollte funktionieren, ich habe in zwar getestet, aber wer weiß :-)) Um das was eine Klammer "gefressen" hat im ersetzen Teil zu bekommen musst du $1 bis $9 verwenden.

außerdem - warum öffenest du ein div, schließt aber ein font? btw: zu pt als Einheit für Schriften befrage bitte das Archiv :-)

Allerdings geht das nur mit Zahlen zwischen 5 - 9, wenn ich dort eine [5-99] einge, funktioniert es auch nicht.

[5-99] funktioniert nicht, da das bedeutet, dass du eine Zahl aus der Menge 5 bis 9 sowie der 9 haben möchtest (und nicht eine Zahl zwischen 5 und 99). Einem regulären Ausdruck zu sagen, dass du eine Zahl zwischen 5 und 22 möchtest, ist afaik nicht möglich. Du wirst dir vermutlich die gültigen Zahlen einzeln auflisten müssen (bzw. generieren lassen) oder über preg_match() die Zahl und den Inhalt von [size] und [/size] holen, die Zahl prüfen und dann ggf. ersetzen.

Grüße aus Nürnberg
Tobias

--
Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|