Thomas: RegEx-Problem

Beitrag lesen

Hallo allerseits

Ich habe ein kleines Problem, bei dem ihr mir sicher weiter helfen könnt.
Also, ich habe eine Zeichenkette, bei der ich per while-regex jeweils eine bestimmte Zeichenfolge herauslese und (in meinem richtigen script dynamisch) ersetze. Also "suchen und ersetzen" geht auf keinen Fall.

Hier mein Beispiel (die Zahlen könnten beliebige Zeichen sein):
<code>
$text = "111ab222ab333ab444";
while ($text =~ /(.*?)ab([^ab]*)/)
    {
    $text2 .= $1.'xy'.$2;
    }
</code>
$text2 sollte dann so aussehen: "111xy222xy333xy444". Es dürfen also keine Zeichen verloren gehen, auch die am Schluss nicht. :)

Das Problem ist hier, dass die Stelle [^ab] nach NICHT-"a" oder NICHT-"b" sucht. Wie kann ich nach NICHT-"ab" suchen?
Oder gibts noch ne ganz andere Variante?