preg_replace PHP
mixmastertobsi
- php
0 dedlfix
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.
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";