Bytecounter: Ersetzen, nur wenn Vorkommen in Folge = 1

Beitrag lesen

Danke für die schnelle Info!
Leider bekomme ich bei

$str = "*a#*b#*b#*b#*a#*b#*a#";
echo preg_replace ('(?<!\*b#)\*b#(?!\*b#)', "+", $str);

eine leere Zeichenkette zurück :-(

Hi,

ich habe ein kleines Problem mit ereg_replace(). Hier das Beispiel:

Muß es ereg_replace sein? oder darf's auch preg_replace sein?

$str = "*a#*b#*b#*b#*a#*b#*a#";

echo ereg_replace ( '(\*b#){1,1}', "+", $str );

\*b# ist das was Du ersetzen willst, und davor darf nicht \*b# vorkommen und danach auch nicht.

Also den negativen Lookbehind (?<!\*b#) davorsetzen und den negativen Lookahead (?!\*b#) hintendran kleben:

(?<!\*b#)\*b#(?!\*b#)
als Suchausdruck für preg verwenden.
Ob ereg das auch kann, wage ich anzuzweifeln.

cu,
Andreas