dedlfix: preg_replace PHP

Beitrag lesen

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";