mixmastertobsi: preg_replace PHP

Hallo,

ich versuche vergeblich einen regulären Ausdruck zu schreiben, der mir aus einem Text alle Wörte, die kleiner als 3 Zeichen sind, löscht.

preg_replace("/(.*){,3}/","",$str);

Wo ist mein Denkfehler?
Kann doch nicht sooo schwer sein.

  1. echo $begrüßung;

    ich versuche vergeblich einen regulären Ausdruck zu schreiben, der mir aus einem Text alle Wörte, die kleiner als 3 Zeichen sind, löscht.
    preg_replace("/(.*){,3}/","",$str);
    Wo ist mein Denkfehler?

    Du suchst

    . ein beliebiges Zeichen
    * in beliebiger Wiederholung
    {,3} und das Ganze bis zu drei Mal

    Du willst aber ein Wort-Zeichen bis zu drei Mal, dem ein Nicht-Wortzeichen vorangeht und eins folgt. Allerdings sollen das vorangehende und nachfolgende Zeichen nicht Teil des Suchergenbnisses sein. Das bekommt man mit Lookahead- und Lookbehind-Assertions getestet.

    Probier mal, ob du es nun in Code ausdrücken kannst. Hilfe, nicht nur zur Assertion-Syntax, kannst du ja erstmal dem PHP-Handbuch-Kapitel Regular Expression Details zu entnehmen versuchen.

    echo "$verabschiedung $name";